如果用户想要从其他计算机注销帐户,JSON Web令牌(JWT)是否会被拒绝或列入黑名单?

Ada*_*m S 5 jwt express-jwt

我正在构建一个需要身份验证的应用程序,我担心用户可能希望能够远程注销.有没有办法使用JSON Web令牌并能够将其列入黑名单或拒绝它们?我知道他们的好处是无国籍,但是远程注销会很好.

编辑:Express.js使用express-jwt模块,有一种撤销令牌方法.此外,还有一个模块express-jwt-blacklist.我仍然不明白这些策略是如何运作的,并且想知道此时的最佳实践是什么.

Nko*_*osi 3

Auth0 上有一篇关于 将 JSON Web Token API 密钥列入黑名单的好文章,其中提供了一个很好的现实示例,说明如何将 JWT API 密钥列入黑名单,使其不再有效。你应该读一下。

界定问题

为 JWT 黑名单提供支持会带来以下问题:

  1. 如何单独识别 JWT?
  2. 谁应该能够撤销 JWT?
  3. 代币如何被撤销?
  4. 我们如何避免增加开销?

这篇博文旨在利用我们在 API v2 中实现此功能的经验来回答前面的问题。

本文对每一点进行了分解,然后展示了一些有关如何实现它的示例代码,并得出结论:

上述大部分内容通常适用于将 JWT 列入黑名单,而不仅仅是 JWT API 密钥。

希望这篇博文为如何解决这个问题提供了一些有用的想法。

我个人应用了类似的方法来撤销多个登录,其中令牌的使用方式与会话 ID 类似,并存储在 cookie 中。我将其建模为 GitHub 配置文件部分,用户可以在其中查看所有其他活动会话并在需要时撤销它们(远程注销)。

就最佳实践而言,我相信该主题将相当基于意见。不过,我确实将 Auth0 视为该主题领域良好实践的来源,很多人在这方面都有丰富的经验。

更新:

在 npm 上找到了这个用于令牌黑名单的express-jwt插件