JWT身份验证及其替代方案,以实现Web应用程序后端的RESTfulness

时间:2018-03-04 15:35:43

标签: rest session authentication cookies jwt

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

因为我想构建这个应用程序RESTful,只有第一种方式似乎对我来说。这样服务器就不需要保持任何状态。

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

此外,我也将实施注销逻辑,我知道,黑名单代币,在我看来,我认为,最佳解决方案也会破坏无状态。 您是否知道实现注销逻辑的任何其他方法,IMMEDIATELY使JWT令牌无效?

感谢您的回答。

编辑: 在失效的情况下,我正在考虑发送一个更新的令牌,其中包含一个告诉" im invalidated token"或者过期的过期日期。这个解决方案只适用于"好男孩"用户。黑客将保留以前仍然有效的令牌。

1 个答案:

答案 0 :(得分:0)

使用JWT注销通过删除令牌客户端来工作。像这样。

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

没有令牌,用户就会被注销。所以我认为这是立即的?