JWT 刷新操作写在 middleware ('auth:API') 是否是 bug? 请管理管处理
无论是第三本教材 还是 jwt的案例代码,都是把刷新操作放在了 middleware(‘auth:api’)中,
如:
public function __construct()
{
$this->middleware('auth:api', ['except' => ['login']]);
}
public function refresh()
{
return $this->respondWithToken(auth()->refresh());
}
protected function respondWithToken($token)
{
return response()->json([
'access_token' => $token,
'token_type' => 'bearer',
'expires_in' => auth()->factory()->getTTL() * 60
]);
}
那么问题来了 如果失效的 JWT_TTL 是 1分钟 而JWT_REFRESH_TTL是10分钟,
在2分钟后 token 肯定失效了, 但是根JWT_REFRESH_TTL10分钟 我们可以请求刷新一个新的token,但是 refresh 方法写在了 登陆后的操作中,那么本身失效了,无法登陆成功,又怎么才能去请求一个新的token呢?
推荐文章: