Laravel或Lumen如何有效处理JWT-Auth的刷新token难题?
- 内容介绍
- 文章标签
- 相关推荐
本文共计442个文字,预计阅读时间需要2分钟。
在Laravel(Lumen)中使用JWT-Auth时遇到一个问题,即如何刷新token。一开始对开发者设计的思路不太理解,看了很多issue后,慢慢明白了jwt-refresh token的使用方法。可以创建一个路由,例如auth/refresh-token,来处理token刷新。
Laravel(Lumen)中使用JWT-Auth遇到一个问题,即token如何刷新。
一开始不太理解作者的设计思想,看了很多issue之后,慢慢明白jwt-refresh如何使用。
建一个路由,比如“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。
本文共计442个文字,预计阅读时间需要2分钟。
在Laravel(Lumen)中使用JWT-Auth时遇到一个问题,即如何刷新token。一开始对开发者设计的思路不太理解,看了很多issue后,慢慢明白了jwt-refresh token的使用方法。可以创建一个路由,例如auth/refresh-token,来处理token刷新。
Laravel(Lumen)中使用JWT-Auth遇到一个问题,即token如何刷新。
一开始不太理解作者的设计思想,看了很多issue之后,慢慢明白jwt-refresh如何使用。
建一个路由,比如“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。

