初用JWT,请教更新 token 的合适时机

发布于 2022-09-11 22:21:45 字数 450 浏览 22 评论 0

我初用 Node 做后台,使用了 JWt,因为欠缺经验,有些疑惑,想请教大家。

token 包含内容:

{
    id,
    username,
    avatar,
    email
  }

目前后台会在以下情况返回新的 token:
注册、登陆、修改资料。

用户修改头像不需要二步验证,所以只要有 token 就行。
现在我在想,如果用户的 token 被盗的话,窃贼可以依据 token 修改头像,并获得新的合法 token,只要其在过期时间(1小时)内修改一次,他就一直可以使用这个用户的身份。

如果修改资料时不更新 token 的话,token 过期后就只能重新登陆获取 token,这样是不是更安全呢?

在实际使用中,除了登陆注册,应不应该让其他一些操作也可以获得新的 token 呢?如果有的话,有哪些情景呢?求教,谢谢大家~

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

写下不归期 2022-09-18 22:21:45
  1. 修改资料不应该刷新 token
  2. 可以使用OAuth2.0里设计的 refresh_token 来单独刷新 token。
野侃 2022-09-18 22:21:45

登录时返回 token 和 refresh_token ,token 过期则使用 refresh_token 请求重新生成 token 和 refresh_token。如果 refreh_token 也过期,则重新登录。其它时候不应该更新 token

笙痞 2022-09-18 22:21:45

其实你应该关注客户端和服务器之间通信的安全性,确保客户端发送的数据在传输过程中不被截取。
客户能拿到token就说明是可信赖的,如果是客户自己泄露的,那没办法避免了,那你只能调整鉴权方式以确保泄露的token尽可能快速失效。这个也和JWT功能没啥太大关系了。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文