【问题标题】:Logout/invalidate a JWT注销/使 JWT 无效
【发布时间】:2014-03-19 05:24:16
【问题描述】:

我通过在自定义登录 API 中生成 JWT(JSON Web 令牌)在 Azure 移动服务中使用自定义身份验证。用户拥有 JWT 后,在达到其编码到期时间之前,它都是有效的。

除了在每个经过身份验证的请求上根据会话表显式检查 JWT 令牌之外,还有一种方法可以在 JWT 令牌到期时间之前使其失效(就像用户注销时会发生的那样),以便使用该令牌发出的任何后续请求X-ZUMO-AUTH 标头中的值永远不会到达任何表 API 或自定义 API 脚本?

【问题讨论】:

标签: security azure-mobile-services jwt


【解决方案1】:

没有。注销用户并使 JWT 令牌无效的唯一方法是将其从会话表中移除/删除。这就是你已经在做的方式。

【讨论】:

    【解决方案2】:

    支持 JWT 失效总有原因):

    我最终为每个用户存储了一个唯一的字符串,我使用全局公共字符串进行哈希处理,因此我可以根据需要使单个用户的令牌或所有令牌无效。

    【讨论】:

      【解决方案3】:

      不是真的。当用户在客户端注销时,它使用的 JWT 并没有真正失效——它只是从客户端的内存中删除(例如,参见 the managed SDK 上的代码)。 JWT 验证是通过根据移动服务的主密钥检查其签名来完成的,除非此密钥被更改(这将使您的服务的所有 JWT 令牌无效,我认为这不是您的想要),令牌将一直有效,直到它过期。

      由于您自己生成 JWT,您可以考虑使用更短的过期时间,这可能对您的情况有所帮助。

      您也可以在mobile service's feedback forum 中推荐此功能。我创建了one related feature suggestion,您也可以考虑添加评论并投票。

      【讨论】:

      • 移动应用程序(以前称为移动服务)的 Azure 反馈论坛的链接现已损坏。除此之外,我再也找不到你的建议了。
      猜你喜欢
      • 2018-06-17
      • 2017-11-09
      • 2019-09-24
      • 1970-01-01
      • 2015-05-06
      • 1970-01-01
      • 2020-10-20
      • 2018-07-29
      • 2016-04-01
      相关资源
      最近更新 更多