2016-12-25 41 views
0

我剛纔想JWT權威性與LARAVEL這https://github.com/tymondesigns/jwt-auth我不明白,智威湯遜刷新令牌的行爲(LARAVEL)

但有件事情我無法理解。在他們的配置便將:

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

我understant什麼:令牌的生活是1小時,可以2周

但3小時後,如果我嘗試查詢的東西,它說:「令牌已過期」內被刷新。

此係統是否意味着用戶必須在每小時內更新/刷新其令牌,但限制爲2周?我不明白。

用戶如何堅持使用這種系統登錄?刷新令牌如何在第一個小時後有用,雖然還沒有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')); 
    } 
} 

,這是FLOW:

請求/登錄與{用戶名:XXX,密碼:XXX} 響應的 /登錄> {令牌:XXXXXXX}

請求/測試直後(10秒)與承載XXXXXX 響應的 /測試>在HEADER與新令牌良好JSON響應

請求/測試後3分鐘(這樣3mins 10秒有過去現在,比刷新限制的5分鐘以下的響應/測試>令牌過期

我不理解。

回答

2

訪問令牌過期後,您可以使用刷新令牌來獲取新的訪問令牌,而不要求用戶再次輸入其用戶名和密碼。 只有刷新令牌過期後,用戶需要重新登錄。

但3小時後,如果我試圖查詢一些東西,它說「令牌過期」。

這是因爲訪問令牌已過期。

此係統是否意味着用戶必須在每小時內更新/刷新其令牌,但限制爲2周?我不明白。

是的。您將刷新令牌保留在客戶端系統中,並在訪問令牌過期時使用它來請求新的訪問令牌。

+1

以及它不工作,甚至與刷新令牌,使用它說:一個小時後 – darkylmnx

+0

令牌過期也許是我做錯了,我怎麼能達致這:「你可以使用刷新標記獲得新的訪問令牌,而不要求用戶輸入「? – darkylmnx

+0

您必須將刷新令牌發送到之前獲取訪問令牌的相同端點。然後,請求標頭應包含 – jps

相關問題