【发布时间】:2018-06-17 08:21:15
【问题描述】:
我是 JWT 的新手,想知道当用户退出应用程序时是否可以在服务器端使 JWT 无效/无效(我也想知道它是否有意义 em> 这样做!)。想法是:
- 用户在其应用中点击退出链接
- 应用调用
POST https://api.myapp.example.com/auth/invalidate - JWT(它是 HTTP 请求标头中的授权/承载令牌)以某种方式失效
- 现在,没有人可以再次使用该 JWT
我不确定这是否是一种非正统的注销逻辑方法,或者即使在用户注销之后,让 JWT 仍然有效是否可以接受(我想我可以缩短 JWT 的寿命到期,例如,60 分钟或其他时间)。
再说一遍:想知道是否有可能使用(如果可以,如何?!)进行这种“无效”,以及它是否有意义这样做(如果没有,典型的注销流程是什么样的?!)。谢谢!
【问题讨论】:
-
您只需指出使用 JWT 进行登录身份验证 (IMO) 的缺陷之一。令牌本身包含过期时间,如果不创建全新的令牌,您实际上无法修改其过期时间。您可以为服务器添加一个辅助系统,以便能够在特定条件下拒绝令牌,但这会退回到传统的登录系统,您会失去访问令牌的可移植性。您可以简单地从客户端删除令牌,但您不能确定用户没有保留它并在注销后再次尝试使用它..
标签: security authentication jwt