【发布时间】:2018-04-27 20:43:54
【问题描述】:
我已经阅读了很多关于 JWT 以及如何通过 JWT 创建“无状态”会话的内容。我理解的要点是,由于签名和过期,您基本上可以将整个会话发送给客户端保存,而服务器不必维护数据库来记住会话。
我不明白,如果您的用户需要注销,或者您需要在到期前使会话无效,会发生什么?
从技术上讲,您可以指示浏览器从客户端将其删除,但您不能确定这是否真的发生了。令牌本身在技术上仍然有效,如果不遵循您的删除说明,它仍然可以使用。
这种理解正确吗?如果是这样,这不是客户端会话管理的一个巨大错误吗?除了让服务器存储会话或缩短过期时间之外,还有什么方法可以克服这个问题?
【问题讨论】:
-
据我了解,我们应该给每个 JWT 一个 id 并检查它是否在黑名单中被撤销。但由于黑名单不是无国籍的,这可能是不正确的。我对这个话题很感兴趣,谢谢你的提问。
标签: session authentication jwt session-state