【发布时间】:2019-03-04 12:46:33
【问题描述】:
问题陈述:-
当用户想要从移动设备上注销时,强制使 JWT 过期。
问题:-
由于 JWT 不存储在任何数据库中(因为这样做会破坏 JWT 的全部目的)强制使 JWT 令牌过期的正确方法是什么?
当我阅读各种答案时,我意识到 JWT 不能手动过期(这是我想要实现的)
根据 JWT,它只有在达到令牌中设置的过期时间时才会过期。根据安全性,这很糟糕。
选项
当用户点击注销时,从移动应用程序中清除缓存和 JWT。但问题仍然在于 JWT 仍然有效。
当用户注销时维护一个列入黑名单的 JWT 列表,并将其与之后的每个请求进行比较。这违背了 JWT 的全部目的。 这种方法不具备可扩展性并且是一种糟糕的实现方式。
我不确定正确的方法是什么。
【问题讨论】:
-
如果您需要管理已撤销令牌的列表,那么您根本不需要 JWT。
-
@FlorentMorselli 完全正确。