2016-12-25 11 views
0

このhttps://github.com/tymondesigns/jwt-auth私はJWTリフレッシュトークンの行動(LARAVEL)私はちょうどLARAVELでJWT払い試してみました

しかし、私は理解できない何かがあるのを理解していません。その設定では、彼らが置か:

'ttl' => env('JWT_TTL', 60), // in munutes 
'refresh_ttl' => env('JWT_REFRESH_TTL', 20160), // in minutes 

私はunderstant何:トークンのが住んでは1時間で、2週間

しかし、私が何かを照会しようとすると3時間後に、それは「トークン有効期限が切れた」と言う内にリフレッシュすることができます。

このシステムはどういう意味では、ユーザーは自分のトークンが更新/毎時内が、2週間の限度でリフレッシュ取得する必要がありますか?理解できません。

はどのように利用者がこの種のシステムにログインを持続することができますか?最初の1時間後にリフレッシュトークンはどのように役立ちますか?まだ2週間はかかりませんでしたが、新しいトークンを取得できません。

おかげ

UPDATE:CODE

設定/ jwt.php

'ttl' => 2, // 2 minutes 
'refresh_ttl' => 5, // 5 minutes 

ルート/ api.php

Route::post('/login', '[email protected]'); 
Route::get('/test', '[email protected]')->middleware('jwt.auth', 'jwt.refresh'); 

HTTP /コントローラ/ AuthController

namespace App\Http\Controllers; 

use Illuminate\Http\Request; 
use JWTAuth; 
use Tymon\JWTAuth\Exceptions\JWTException; 

class AuthController extends Controller 
{ 
    public function test() 
    { 
     return response()->json(['coucou' => 1]); 
    } 

    public function login(Request $request) 
    { 
     // grab credentials from the request 
     $credentials = $request->only('email', 'password'); 

     try { 
      // attempt to verify the credentials and create a token for the user 
      if (! $token = JWTAuth::attempt($credentials)) { 
       return response()->json(['error' => 'invalid_credentials'], 401); 
      } 
     } catch (JWTException $e) { 
      // something went wrong whilst attempting to encode the token 
      return response()->json(['error' => 'could_not_create_token'], 500); 
     } 

     // all good so return the token 
     return response()->json(compact('token')); 
    } 
} 

、これは流れである:

要求/へのログインと{ユーザー名:XXX、パスワード:XXX} 応答 /ログイン> {トークン:XXXXXXX}

リクエスト~/テストとしてください。ベアラxxxxxx ヘッダに/試験の応答>新しいトークンとの良好なJSONレスポンス

要求へ/試験 3分後(10秒は、リフレッシュ限界の5分未満で、過去今有する3minsよう私は理解していない/テスト>トークン有効期限が切れ

の) 応答。アクセストークンの有効期限が切れた後

答えて

2

もう一度入力し、彼のユーザ名とパスワードをユーザに確認せずに新しいアクセストークンを取得するにはリフレッシュトークンを使用することができます。 リフレッシュトークンの期限が切れた後でのみ、ユーザーは再度ログインする必要があります。

しかし、3時間後、私が何かを照会しようとすると、「トークンは期限切れです」と表示されます。アクセストークンの有効期限が切れているためだ

このシステムは、1時間ごとにトークンを更新/リフレッシュする必要がありますが、制限は2週間以内にする必要がありますか?理解できません。

はい。リフレッシュトークンをクライアントシステムに保持し、アクセストークンが期限切れになったときに新しいアクセストークンを要求するために使用します。

+1

だけでなく、それもリフレッシュトークンを使用して、動作しませんが、それが言うに使用:トークンはたぶん私は間違ったことをやっている時間 – darkylmnx

+0

後に期限が切れて、どのように私はこれをacheiveすることができます: "あなたが得るためにリフレッシュトークンを使用することができます新しいアクセストークンを入力せずにユーザーに「? – darkylmnx

+0

以前にアクセストークンを取得したのと同じエンドポイントに更新トークンを送信する必要があります。リクエストヘッダーには – jps

関連する問題