【问题标题】:JWT signature's verification at resource-server side in laravelLaravel 资源服务器端的 JWT 签名验证
【发布时间】:2016-09-13 02:30:50
【问题描述】:

我可以这样做吗

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

我尝试使用this 包来做到这一点。正如我上面所问的,我已经按照here 的描述对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 ; 
});

【问题讨论】:

    标签: php laravel laravel-5.1 jwt


    【解决方案1】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2015-12-05
      • 2016-06-09
      • 2018-10-13
      • 2019-01-18
      • 2020-05-11
      • 1970-01-01
      • 2016-08-28
      • 2020-09-08
      相关资源
      最近更新 更多