dongshen7407 2018-01-19 15:43
浏览 2986

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

我对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;
}
  • 写回答

0条回答

    报告相同问题?

    悬赏问题

    • ¥15 matlab有关常微分方程的问题求解决
    • ¥15 perl MISA分析p3_in脚本出错
    • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
    • ¥15 ubuntu虚拟机打包apk错误
    • ¥199 rust编程架构设计的方案 有偿
    • ¥15 回答4f系统的像差计算
    • ¥15 java如何提取出pdf里的文字?
    • ¥100 求三轴之间相互配合画圆以及直线的算法
    • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
    • ¥15 名为“Product”的列已属于此 DataTable