您好我在laravel 5应用程序中使用JWT进行身份验证。该应用程序当前驻留在实时服务器上,并具有其他应用程序可以连接的多个API。
目前我正在构建一个连接到其中一些API的移动应用程序,正如您在用户登录时所了解的移动应用程序一样,我希望它们在很长一段时间内保持登录状态。
为了做到这一点,我发现我需要刷新JWT,当它过期时,显然这将生成一个新的令牌并将旧令牌列入黑名单。
我使用的是Tymon/JWT的最新版本,其中包含一个新版本
blacklist_grace_period
功能。这允许我设置刷新令牌和旧列表被列入黑名单的延迟。
我现在的问题是,在我的路线档案中有以下内容:
Route::group(['domain' => 'admin.website'.(App::environment('production') ? '.com' : '.dev'), 'prefix' => '/api/v1/manager/', 'namespace' => 'App\Http\BackEnd\Controllers', 'middleware' => ['before' => 'jwt.auth', 'after' => 'jwt.refresh', 'acl'], 'is' => 'manager'], function() {
/** Manager Resource Routes */
Route::resource('events', 'EventManagerController');
});
如何在jwt.refresh
之后获取新生成的令牌并返回客户端?或者是自动附加到请求的响应?
答案 0 :(得分:0)
看看你正在使用的中间件:
供应商/ tymon / JWT-AUTH / SRC /中间件/ RefreshToken.php
首先它解析令牌,然后刷新它:
try {
$newToken = $this->auth->setRequest($request)->parseToken()->refresh();
}
然后将其添加到响应的标题中:
$response->headers->set('Authorization', 'Bearer '.$newToken);
return $response;
所以,是的,这确实是新刷新的令牌被添加到响应中的地方。