我正在为我的应用使用tymondesigns/jwt-auth
包,但在一段时间后它会显示SyntaxError: non-keyword arg after keyword arg
消息。
我已经设置了token expired
并删除了'ttl' => null
,但它无效。
这是我的exp
config/jwt.php
是否有其他设置可以删除到期时间?
答案 0 :(得分:1)
您可以做到
'ttl' => env('JWT_TTL', 1440)
将默认值60更改为1440将使令牌可持续使用一天,这对我有用,希望对您有帮助
答案 1 :(得分:1)
您可以执行此操作并使用动态计时来使您的令牌到期
auth()->attempt($credentials, ['exp' => Carbon::now()->addYears(2)->timestamp])
或者这个
auth()->attempt($credentials, ['exp' => Carbon::now()->addMonths(2)->timestamp])
使用 Carbon 作为代币到期时间
答案 2 :(得分:0)
这样的话,如果令牌过期了,我想通过... 您可以将此代码放在中间件中..
public function handle($request, Closure $next, $guard = null)
{
$token = JWTAuth::getToken();
try {
$user = JWTAuth::authenticate($token);
} catch (\Tymon\JWTAuth\Exceptions\TokenExpiredException $e) {
return $next($request);
} catch (\Tymon\JWTAuth\Exceptions\TokenInvalidException $e) {
return response()->json([
'status' => 500,
'message' => 'Token Invalid',
], 500);
} catch (\Tymon\JWTAuth\Exceptions\JWTException $e) {
return response()->json([
'status' => 500,
'message' => $e->getMessage(),
], 500);
}
return $next($request);
}
并且不要忘记在代码顶部包含 JWTAuth...
use Tymon\JWTAuth\Facades\JWTAuth;