首页 > 解决方案 > 登录/注销是否需要 JWT 身份验证

问题描述

我最近开始致力于保护我的 Web 应用程序。我正在使用 Spring Framework。所以我已经应用了 JWT 身份验证来保护我的 REST API 端点。我还创建了一个不同的示例演示,其中我提供了简单的登录和注销功能使用弹簧安全。

现在我正在尝试将 JWT 身份验证用于登录/注销功能。但我觉得它有点错误。我认为 JWT 应该只用于保护 REST 服务的端点,而不是登录/注销功能,这是一个有状态的活动和 JWT 身份验证不是最好的方法。

这是我的误解吗?JWT 也可以用于登录/注销吗?任何输入都将不胜感激。

标签: springrestspring-securityjwt

解决方案


好吧,您已经回答了大部分问题。您可以进行stateful/stateless身份​​验证。现在使用哪一个取决于应用程序的用例。

用例 1:

如果您的应用程序部署为需要从 UI 完成所有执行的服务,则可以考虑状态身份验证,即基于表单的身份验证。

用例 2:

假设您正在为第 3 方创建 API 并希望保护它们,请进行无状态身份验证,即 JWT

用例 3:

现在,如果您的用例都是 Usecase 1,2,您还可以在一个应用程序中实现基于表单的/JWT 身份验证。

笔记:

话虽如此,您也可以使用令牌身份验证登录。唯一的问题是您必须自己编写一些场景。

例如:

  1. 当登录成功时,添加 TokenlocalStorage并使用 if 进行进一步的请求。

  2. 注销时从 中删除令牌localStorage

  3. 对于没有令牌的任何访问重定向到带有错误消息的登录屏幕。


推荐阅读