问题 注销/使JWT无效


我在Azure移动服务中使用自定义身份验证,方法是在自定义登录API中生成JWT(JSON Web令牌)。一旦用户拥有JWT,它就会有效,直到达到编码的到期时间。

除了在每个经过身份验证的请求上针对会话表显式检查JWT令牌之外,是否有一种方法可以在JWT令牌到期时间之前使其无效(当用户注销时会发生这种情况),以便使用该令牌作为值进行任何后续请求在里面 X-ZUMO-AUTH header永远不会到达任何表API或自定义API脚本?


6916
2018-02-19 04:25


起源

在这个相关问题中有很好的讨论替代方案: stackoverflow.com/questions/21978658/... - Travis Terry


答案:


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

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

你也可以建议这个功能 移动服务的反馈论坛。有 一个相关的功能建议 我创建的,你也可以考虑添加一个评论并投票。


9
2018-02-20 15:01



移动应用程序(以前称为移动服务)的Azure反馈论坛的链接现已破裂。除此之外我再也找不到你的建议了。 - Sascha Gottfried
修复了链接,感谢报道。 - carlosfigueira


支持JWT失效 (总有理由):

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


0
2017-08-30 15:01





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


0
2017-08-02 02:12