Laravel jwt身份验证令牌已过期,token_invalid

我有一个jwt auth令牌到期问题。 情况如下:</ p>

我将laravel中的API编写为一个项目。 此API使用另一个laravel项目(客户端)。 但是当我尝试登录用户时,一切都很好,但后来我开始意识到TTL(60分钟)(生存时间)过后然后我尝试获取用户资源(需要用户登录) 我得到了json错误响应{“error”=&gt; “token_expired”}。</ p>

这是我使用jwt.auth中间件的代码的路由部分:</ p>

  Route ::  group(['middleware'=&gt;'jwt.auth'],function(){
Route :: get('account / getUserDetails','Api \ AccountController @ getUserDetails');
});
< / code> </ pre>

我很困惑为什么令牌没有自动刷新,我是否需要明确指定刷新令牌的地方,我不这么认为?</ p> \ n

'refresh_ttl'=&gt; 20160年,在jwt.php。 端点如下所示:</ p>

  public function getUserDetails(Request $ request)
{

尝试{
if(!$ user = JWTAuth :: parseToken( ) - &gt; authenticate()){

返回响应() - &gt; json(['user_not_found'],404);
}

}} catch(Tymon \ JWTAuth \ Exceptions \ TokenExpiredException $ e ){

$ refreshed = JWTAuth :: refresh(JWTAuth :: getToken());
$ user = JWTAuth :: setToken($ refreshed) - &gt; toUser();
返回$ this-&gt; response-&gt; withArray(['token'=&gt; $ refreshed]);
} catch(Tymon \ JWTAuth \ Exceptions \ TokenInvalidException $ e){

返回响应() - &gt; json(['token_invalid '],$ e-&gt; getStatusCode());

}} catch(Tymon \ JWTAuth \ Exceptions \ JWTException $ e){

返回响应() - &gt; json(['token_absent'], $ e-&gt; getStatusCode());

}

返回$ user;
}
</ code> </ pre>
</ div>

展开原文

原文

我对jwt auth令牌到期有个问题。 情况是这样的:我把laravel中的API作为一个项目来编写。 这个API使用另一个laravel项目(客户端)。 但是当我尝试用户登录,一切都很好,但之后我开始意识到TTL(60分钟)(时间生活)通过,然后当我试图让用户资源(需要登录用户)我得到json错误响应{“错误”= >“token_expired”}。 这是我使用jwt的代码的路由部分。 auth中间件:

Route::group(['middleware' => 'jwt.auth'], function () {
    Route::get('account/getUserDetails', 'Api\AccountController@getUserDetails');
});

我很困惑为什么令牌不会自动刷新,我是否需要在某个地方明确指定刷新令牌的方式,难道不是这样的吗?

“refresh_ttl”=比;20160,在jwt.php中。端点看起来是这样的:

public function getUserDetails(Request $request)
{

    try {
        if (! $user = JWTAuth::parseToken()->authenticate()) {

            return response()->json(['user_not_found'], 404);
        }

    } catch (Tymon\JWTAuth\Exceptions\TokenExpiredException $e) {

        $refreshed = JWTAuth::refresh(JWTAuth::getToken());
        $user = JWTAuth::setToken($refreshed)->toUser();
        return $this->response->withArray(['token' => $refreshed]);
    } catch (Tymon\JWTAuth\Exceptions\TokenInvalidException $e) {

        return response()->json(['token_invalid'], $e->getStatusCode());

    } catch (Tymon\JWTAuth\Exceptions\JWTException $e) {

        return response()->json(['token_absent'], $e->getStatusCode());

    }

    return $user;
}

donglianjiang9321
donglianjiang9321 检查这个github.com/tymondesigns/jwt-auth/issues/...
接近 3 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐