首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JWT和阻塞用户

JWT和阻塞用户
EN

Stack Overflow用户
提问于 2017-04-26 08:31:05
回答 1查看 2.6K关注 0票数 5

JWT是一种无状态身份验证机制,因为用户状态从未保存在服务器内存中。

如果管理员阻止用户执行某些响应,如何使令牌失效?

EN

回答 1

Stack Overflow用户

发布于 2017-05-12 09:00:04

JWT不是身份验证机制,而是令牌格式。由于JWT是独立的,所以可以使用它们进行无状态身份验证。但是,这并不意味着您的身份验证机制必须是无状态的(尽管它有其好处)。

有几种处理用户锁定/撤销授权的选项:

  • 在验证JWT以查看用户是否被锁定后,在每个请求中查找用户
  • 访问令牌应该是短暂的,因此您可以在下次请求新访问令牌(例如,使用刷新令牌)时查找用户,然后拒绝发出新的访问令牌。
  • 或者,通过将特定用户的jti存储在数据库中,您可以将所有令牌黑名单。另见:https://auth0.com/blog/denylist-json-web-token-api-keys/编辑:正如注释中指出的那样,这种方法虽然不是严格无状态的,但仍然是有效的,因为黑名单只需要在其生存期内存储黑名单中的令牌,并且查找应该是高效率的。
  • 您可以查找由特定JWT标识的用户,每个N个请求,或JWT生命周期中的X%经过时,而不是在每个请求中执行。

所有这些方法都不是完全无状态的。通常,如果希望可以撤消授权,则不可能进行无状态授权。如果您希望您的令牌完全无状态,您应该确保它们的生存期尽可能短,并且发出一个新令牌并不是无状态的。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43628844

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档