JWT自动化及其替代方案,以达到Web应用程序后端的RESTfulness



在我的公司,我们正在构建一个Web应用程序,最实际的问题是选择一个身份验证解决方案。我正在考虑最常用的 3 种维护方式 与经过身份验证的用户的会话:无状态 JWT(所有会话数据在其有效负载中都包含 JWT 令牌)、有状态 JWT(令牌仅用于验证请求,并且在其有效负载中,它具有会话 ID 到服务器会话数据记录)和存储在 cookie 中的传统会话 ID,这需要额外检查服务器中的匹配 ID。

因为我想构建这个应用程序 RESTful,所以对我来说只有第一种方法是正确的。这样,服务器就不需要保存任何状态。

我的第一个问题是:是否可以将所有会话数据存储在令牌有效负载中(当然,这些数据不是那么大,它们不应该是秘密,因此不需要安全性)。

另外,我也将实现注销逻辑,我知道,将令牌列入黑名单,就我而言,我认为最好的解决方案也会破坏无国籍状态。 您是否知道任何其他实现注销逻辑的方法,该逻辑会立即使JWT令牌失效?

谢谢你的回答。

编辑: 在无效的情况下,我正在考虑发送一个更新的令牌,其中包含一个告诉"im 无效令牌"的标志或过期的到期日期。此解决方案仅适用于"好孩子"用户。黑客将保留以前和仍然有效的令牌。

使用 JWT 注销的工作原理是删除令牌客户端。喜欢这个。

function removeToken() {
localStorage.removeItem("jwt-token");
}

如果没有令牌,用户将注销。所以我认为这是立竿见影的?

最新更新