JWT身份验证及其替代方案,可实现Web应用程序后端的RESTfulness
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JWT身份验证及其替代方案,可实现Web应用程序后端的RESTfulness相关的知识,希望对你有一定的参考价值。
在我的公司,我们正在构建一个Web应用程序,而大多数实际问题是选择一个身份验证解决方案。我考虑了三种最常用的方式来维护与经过身份验证的用户的会话:无状态JWT(所有会话数据在其有效负载中保存JWT令牌),有状态JWT(令牌仅用于验证请求,并且在其有效负载中它具有会话数据到会话数据记录在服务器上)和存储在cookie中的传统会话ID,这需要额外检查服务器中的匹配ID。
因为我想构建这个应用程序RESTful,只有第一种方式似乎对我来说。这样服务器就不需要保持任何状态。
我的第一个问题是:将所有会话数据存储在令牌有效载荷中是否可以(当然,这些数据并不大,它们不应该是秘密,因此不需要安全性)。
此外,我也将实施注销逻辑,我知道,黑名单代币,在我看来,我认为,最好的解决方案也会破坏无国籍状态。您是否知道实现注销逻辑的任何其他方法,IMMEDIATELY使JWT令牌无效?
谢谢您的回答。
编辑:如果失效,我正在考虑发送一个更新的令牌,其中包含一个告诉“im invalidated token”或过期的过期日期的标志。此解决方案仅适用于“好孩子”用户。黑客将保留以前仍然有效的令牌。
使用JWT注销通过删除令牌客户端来工作。像这样。
function removeToken() {
localStorage.removeItem("jwt-token");
}
没有令牌,用户将被注销。所以我认为这是立即的?
以上是关于JWT身份验证及其替代方案,可实现Web应用程序后端的RESTfulness的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Python 中使用 JWT 实现基于角色的身份验证
如何实现身份验证和授权 WEB API 2 .NET 应用程序?尝试 JWT 库