2016-06-13 21 views
0

私はLaravelでバックエンドを持っていて、Ionicでアプリを作っています。フロントエンド側ではsatellizer、JWT認証ではラベラー側でthis packageを使用しています。ログアウトするまでユーザーのトークンを取得する必要があるため、トークンを何とか更新する必要があります。私はこれを行う方法がわかりません。すべてのルートに認証トークンを要求し、存在しない場合は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を返します。

関連する問題