2016-07-28 144 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

相關問題