JWT签名';s在laravel中的资源服务器端的验证


JWT signature's verification at resource-server side in laravel

我能做这个吗

  1. 拥有一个(托管在mydomain/public上)laravel Api目的是验证用户并获得JWT令牌。即authentication server
  2. 不知何故,将相同的令牌传递给第二个(托管在mydomain/secure)laravel-Api,以便对用户和访问应用程序。即resource server

我试过用这个软件包来做这个。正如我在上面所问的,我已经在这里描述的authentication server上进行了身份验证,并且已经生成了令牌,并且我已经向资源服务器中所需的令牌添加了一些数据。我将该令牌传递给resource server,并尝试解析该令牌。我得到了类似Token has expired的错误所以,我的问题是:

  1. 如何在资源服务器上验证JWT签名侧面
  2. 是否可以使用JWT

我试图在资源服务器中解析令牌的代码

Route::get("/parse/token",function(Request $request){
    $token = JWTAuth::getToken();
    $user = JWTAuth::toUser($token);
    return $user ; 
});

默认情况下,JWT机制将所有令牌保存到authentication server上的缓存文件中。请参阅config/cache.php:

'default' => env('CACHE_DRIVER', 'file'),
'stores' => [
    ...
    'file' => [
        'driver' => 'file',
        'path'   => storage_path('framework/cache'),
    ],
    ...
], 

resource server无法访问此文件,也无法解析输入令牌。

您可以尝试使用Memcached或一些数据库来保存JWT令牌。