【发布时间】:2018-08-12 07:36:59
【问题描述】:
在我的公司,我们正在构建一个 Web 应用程序,而最实际的问题是选择一个身份验证解决方案。我正在考虑 3 种最常用的维护方式 与经过身份验证的用户的会话:无状态 JWT(所有会话数据在其有效负载中都包含 JWT 令牌)、有状态 JWT(令牌仅用于验证请求,并且在其有效负载中它具有会话 ID 到服务器上的会话数据记录)和传统会话 ID 存储在cookie,需要额外检查服务器中的匹配 id。
因为我想构建这个应用程序 RESTful,只有第一种方式对我来说似乎是正确的。这样服务器就不需要保持任何状态。
我的第一个问题是:可以将所有会话数据存储在令牌负载中吗(当然,这些数据不是那么大,它们不应该是秘密,因此不需要安全性)。
另外,我也将实现注销逻辑,而且我知道,将令牌列入黑名单,在我的情况下,我认为,最好的解决方案也会破坏无状态。 您是否知道任何其他方式来实现立即使 JWT 令牌无效的注销逻辑?
感谢您的回答。
编辑: 在失效的情况下,我正在考虑发送一个更新的令牌,带有一个告诉“我失效的令牌”的标志或过期的过期日期。此解决方案仅适用于“好孩子”用户。黑客将保留以前且仍然有效的令牌。
【问题讨论】:
标签: rest session authentication cookies jwt