2016-03-10 67 views
2

您好,我正在使用JWT进行身份验证,在我的laravel 5应用程序中。该应用程序当前驻留在一个实时服务器上,并有多个其他应用程序可以连接到的API。智威汤逊令牌刷新

目前我正在构建一个移动应用程序,连接到这些API中的一些,正如您在移动应用程序中所知道的那样,当用户登录后,我希望它们保持很长一段时间的登录状态。

要做到这一点,我发现我需要刷新智威汤逊过期时,显然这会生成一个新的令牌和黑名单旧的。

我使用最新版本的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

看看后的中间件,它使用的是:

供应商/ tymon/JWT-AUTH/src目录/中间件/ RefreshToken.php

首先,它解析令牌,然后刷新它:

try { 
    $newToken = $this->auth->setRequest($request)->parseToken()->refresh(); 
} 

然后将其添加到响应的标题:

$response->headers->set('Authorization', 'Bearer '.$newToken); 

return $response; 

所以,是的,这确实是将新刷新的标记添加到响应的地方。