2016-06-13 144 views
0

我在Laravel中創建了一個後端,並在離子中創建了一個應用程序。我在前端使用satellizer,並在laravel端使用this package進行JWT身份驗證。由於我需要在用戶註銷之前擁有令牌,所以我需要一種方式來以某種方式刷新令牌。我不知道如何做到這一點,讓所有路由請求auth令牌併發送401響應(如果不存在),然後執行令牌刷新或刷新前端定時器的令牌以及如何實際執行?角度 - 刷新jwt令牌

這是我的路線文件:

Route::group(['jwt.auth', ['except' => ['authenticate']], 'prefix' => 'api', 'namespace' => 'Api'], function() { 
    Route::post('authenticate', '[email protected]'); 
    Route::get('user', '[email protected]'); 
    Route::get('comment', '[email protected]'); 
    Route::get('articles/latest', '[email protected]'); 
    Route::get('articles/by-score', '[email protected]'); 
    Route::get('article/{id}', '[email protected]'); 
    Route::get('comments', '[email protected]'); 
    Route::get('comments/{id}', '[email protected]'); 
    Route::post('comments/create', '[email protected]'); 
    Route::put('comments/update', '[email protected]'); 
    Route::delete('comments/delete', '[email protected]'); 
    Route::post('article/upvote', '[email protected]'); 
    Route::delete('article/upvote/delete', '[email protected]'); 
    Route::post('article/challenge/vote', '[email protected]'); 
    Route::delete('article/challenge/vote/delete', '[email protected]'); 
}); 

回答

1

我在過去所做的那樣是做授權的請求,然後就創建一個新的令牌當令牌期滿您數據庫在一段時間內。對於我來說,如果用戶在最近15分鐘內仍然活躍,則會刷新1小時令牌。然後,如果令牌刷新,請在Laravel中設置新令牌並使舊令牌無效。或者你可以延長數據庫的刷新時間。我的建議是在令牌最初創建時設置一些expire_time。如果令牌過期,則返回401。