我正在构建一个需要身份验证的应用程序,我担心用户可能希望能够远程注销.有没有办法使用JSON Web令牌并能够将其列入黑名单或拒绝它们?我知道他们的好处是无国籍,但是远程注销会很好.
编辑:Express.js使用express-jwt模块,有一种撤销令牌的方法.此外,还有一个模块express-jwt-blacklist.我仍然不明白这些策略是如何运作的,并且想知道此时的最佳实践是什么.
Auth0 上有一篇关于 将 JSON Web Token API 密钥列入黑名单的好文章,其中提供了一个很好的现实示例,说明如何将 JWT API 密钥列入黑名单,使其不再有效。你应该读一下。
界定问题
为 JWT 黑名单提供支持会带来以下问题:
- 如何单独识别 JWT?
- 谁应该能够撤销 JWT?
- 代币如何被撤销?
- 我们如何避免增加开销?
这篇博文旨在利用我们在 API v2 中实现此功能的经验来回答前面的问题。
本文对每一点进行了分解,然后展示了一些有关如何实现它的示例代码,并得出结论:
上述大部分内容通常适用于将 JWT 列入黑名单,而不仅仅是 JWT API 密钥。
希望这篇博文为如何解决这个问题提供了一些有用的想法。
我个人应用了类似的方法来撤销多个登录,其中令牌的使用方式与会话 ID 类似,并存储在 cookie 中。我将其建模为 GitHub 配置文件部分,用户可以在其中查看所有其他活动会话并在需要时撤销它们(远程注销)。
就最佳实践而言,我相信该主题将相当基于意见。不过,我确实将 Auth0 视为该主题领域良好实践的来源,很多人在这方面都有丰富的经验。
更新:
在 npm 上找到了这个用于令牌黑名单的express-jwt插件
| 归档时间: |
|
| 查看次数: |
2487 次 |
| 最近记录: |