Laravel(Lumen)中使用JWT-Auth刷新token的问题

更新时间:2023-07-17 00:12:59 阅读: 评论:0

Laravel(Lumen)中使⽤JWT-Auth刷新token的问题
Laravel(Lumen)中使⽤JWT-Auth遇到⼀个问题,即token如何刷新。
⼀开始不太理解作者的设计思想,看了很多issue之后,慢慢明⽩jwt-refresh如何使⽤。
建⼀个路由,⽐如“auth/refresh-token” ,可以指向某个⽅法,也可以直接写个匿名函数。
所见即所得$app->post('auth/refresh-token', ['middleware' => 'fresh', function() {
try {
$old_token = JWTAuth::getToken();
威廉王子大婚$token = JWTAuth::refresh($old_token);
JWTAuth::invalidate($old_token);
} catch (TokenExpiredException $e) {
throw new AuthException(词根词缀
yiji
电话营销开场白
Constants::get('fresh_token_expired'),
trans('fresh_token_expired'), $e);
} catch (JWTException $e) {
throw new AuthException(汉语翻译
grooveConstants::get('ken_invalid'),
little black dresstrans('ken_invalid'), $e);
}
extractallreturn respon()->json(compact('token'));
}]);
当token失效之后,访问这个地址,把旧token带上,会得到⼀个新的token。⾃⼰将新token保存,访问api时使⽤新token。如此反复。虽然token的有效很短,默认是⼀个⼩时,但是刷新时间长达两个星期,还算可以,总⽐重复登录来得⽅便。
客户端登录之后只要保存token,减少了被获取⽤户名密码的风险。
这个地⽅有个bug,就是旧token虽然不能再使⽤,但是却可以⽤来获取新token。这个问题在0.6版中被修复。如果着急这个问题可以使⽤0.6版。
樱冢澈⼀开始以为⼀个token刷新之后可以接着⽤,原来是换个新token,不知道接着⽤的思想是否可⾏。

本文发布于:2023-07-17 00:12:59,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/78/1100459.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:思想   保存   登录   理解
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图