jwt token注销_如何在注销时销毁JWT令牌?

6 个答案:

答案 0 :(得分:42)

JWT存储在浏览器上,因此删除在客户端删除cookie的令牌

如果您还需要在服务器端到期之前使令牌无效,例如帐户已删除/阻止/暂停,密码已更改,权限已更改,用户已由管理员注销,请查看Invalidating JSON Web Tokens一些公共技术,如创建黑名单或旋转令牌

答案 1 :(得分:7)

创建令牌后,无法手动使令牌失效。因此,实际上无法像在会话中那样在服务器端使用JWT注销。

JWT是无状态的,这意味着您应该将所需的所有内容存储在有效负载中,并跳过对每个请求的数据库查询。但是,如果您计划具有严格的注销功能,即使您已从客户端清除了令牌,也无法等待令牌自动过期,那么您可能需要忽略无状态逻辑并执行一些查询。那么有什么解决方案?

在令牌上设置合理的到期时间

注销后从客户端删除存储的令牌

在每个授权请求上针对黑名单查询提供的令牌

黑名单

所有不再有效且尚未过期的令牌的“黑名单”。您可以在文档上使用带有TTL选项的数据库,该数据库将设置为令牌过期之前剩余的时间。

Redis

Redis是黑名单的一个不错的选择,它将允许在内存中快速访问该列表。然后,在针对每个授权请求运行的某种中间件中,您应该检查提供的令牌是否在黑名单中。如果是这样,则应抛出未授权的错误。如果不是,则放手,JWT验证将处理它,并确定它是否已过期或仍处于活动状态。

答案 2 :(得分:1)

您可以在令牌中添加“发出时间”,并为服务器上的每个用户

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值