token如何刷新
在PHP框架Laravel中安装了扩展JWT-Auth,你可能会遇到一个问题,即token该如何刷新。
可能很多人都不太理解作者的设计思想,包括我在内,但是看了很多issue之后,你就会慢慢的明白jwt-refresh是如何使用的咯,下面来给大家讲解一下。
首先create一个路由,比如“auth/refresh-token” ,你可以指向某个方法,也可以直接写个匿名函数。这里个人是简单的写在匿名函数里。
代码如下:
$app->post('auth/refresh_token', ['middleware' => 'jwt.refresh', function() {
try {
$old_token = JWTAuth::getToken();
$token = JWTAuth::refresh($old_token);
JWTAuth::invalidate($old_token);
} catch (TokenExpiredException $e) {
throw new AuthException(Constants::get('error_code.refresh_token_expired'),trans('errors.refresh_token_expired'), $e);
} catch (JWTException $e) {
throw new AuthException(Constants::get('error_code.token_invalid'),trans('errors.token_invalid'), $e);
}
return response()->json(compact('token'));
}]);当token失效之后,访问这个地址的时候就会把旧token带上,会得到一个新的token。它会将新token保存,访问api时使用新token。就这样如此反复。