我不明白,智威汤逊刷新令牌的行为(LARAVEL)

我不明白,智威汤逊刷新令牌的行为(LARAVEL)

问题描述:

我刚才想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分钟以下的响应/测试>令牌过期

我不理解。

访问令牌过期后,您可以使用刷新令牌来获取新的访问令牌,而不要求用户再次输入其用户名和密码。 只有刷新令牌过期后,用户需要重新登录。

但3小时后,如果我试图查询一些东西,它说“令牌过期”。

这是因为访问令牌已过期。

此系统是否意味着用户必须在每小时内更新/刷新其令牌,但限制为2周?我不明白。

是的。您将刷新令牌保留在客户端系统中,并在访问令牌过期时使用它来请求新的访问令牌。

+1

以及它不工作,甚至与刷新令牌,使用它说:一个小时后 – darkylmnx

+0

令牌过期也许是我做错了,我怎么能达致这:“你可以使用刷新标记获得新的访问令牌,而不要求用户输入“? – darkylmnx

+0

您必须将刷新令牌发送到之前获取访问令牌的相同端点。然后,请求标头应包含 – jps