2016-07-28 120 views
0

我正在编写与API进行通信的Laravel5中的应用程序,即使在我的JWT令牌过期后,如何继续使用API​​进行身份验证。登录凭证存储在环境文件中。我第一次登录并将令牌保存到会话中。然后,我有一个令牌,但它也可能被取消,并返回消息如何使用JWT保持使用API​​进行身份验证

{ 
    "message": "Token expired" 
} 

401我如何可以检测到这种未经用户注意到的是,应用程序必须重新进行身份验证,我可以使用中间件这个赶上401消息令牌过期,然后再次验证并存储新的令牌?

流程就是这样。

User requests url on my application 
-> 
My application asks for data from the API 
-> 
Checks the Token in my storage with that one in the API 
-> 
Returns 401 with message Token expired 
-> 
Requests a new Token 
-> 
Returns data from API to user. 

我必须这样做,我的用户不应该注意到它,我不想在每个请求上对api进行身份验证。但我不知道从哪里开始。

回答

1

好问题。

这可以通过刷新令牌来实现,如果你使用中发现的Laravel JWT套餐:

Here

您能够轻松realtively利用刷新令牌。你可以添加一个中间件:

protected $routeMiddleware = [ 
    'jwt.refresh' => 'Tymon\JWTAuth\Middleware\RefreshToken', 
]; 

在你的步:

Checks the Token in my storage with that one in the API 

如果令牌已过期,但刷新时间仍然有效,将返回在标题中刷新令牌,假设你打的路线是在jwt.refresh中间件中。

让我知道你是否需要任何额外的帮助。

完整的文档在这里:

Docs

相关问题