gpt4 book ai didi

javascript - JsonWebToken 用户身份验证问题

转载 作者:行者123 更新时间:2023-12-03 06:28:19 27 4
gpt4 key购买 nike

我有一个用于用户身份验证的应用程序,我遇到了这个问题,我有登录的用户并将 JWT (JsonWebToken) 存储在 cookie 中。我在验证用户后存储了 cookie。接下来,我作为管理员,在该用户仍处于登录状态时从数据库中删除该用户。由于用户仍处于登录状态,因此该用户在浏览器中具有有效的 JWT,因此它仍然认为它存在,因为我的方式验证用户是否通过 webtoken 登录。我一直在考虑如何解决这个问题,但我还没有想出任何办法。

我也在GitHub上发布了这个问题.

最佳答案

看看Invalidating JSON Web Tokens

当用户情况发生变化并且无法从 localStorage/cookie 中删除时,有多种技术可以在 JWT token 过期之前使其失效:帐户已删除/阻止/暂停、密码更改、权限更改、用户由管理员注销:

  1. token 黑名单:存储注销和过期时间之间的 token ,标记过期并在每个请求中检查它。您需要服务器存储。您可以仅包含 ID 或使用发布时间字段。在用户上次更新之前发行的 token 将无效

  2. 到期时间短并轮换它们。每隔几个请求就发出一个新的。问题是在没有请求时保持用户登录(例如关闭浏览器)

其他常见技术:

  • 如果帐户因新用户和密码登录而遭到泄露,则允许更改用户唯一 ID
  • 包含上次登录日期以删除旧 token
  • 要在用户更改密码时使 token 失效,请使用密码的哈希值对 token 进行签名。如果密码更改,任何先前的 token 都会自动无法验证。将这一机制扩展到其他感兴趣的领域进行签名。缺点是它需要访问数据库

关于javascript - JsonWebToken 用户身份验证问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38544308/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com