为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 Spring MVC 的客户端处理 JWT 令牌?

如何在 Spring MVC 的客户端处理 JWT 令牌?

拉莫斯之舞 2022-11-30 13:39:37
有 Spring MVC 应用程序——服务器生成 HTML,客户端不是 SPA(即这与任何形式的 API 无关)。在身份验证期间,生成 JWT 令牌并将其返回给客户端。在授权期间,服务器验证 JWT 令牌。如何在客户端存储 JWT 令牌并通过所有进一步的请求将其传递给服务器?请记住这是 Spring MVC 应用程序而不是 SPA。我尝试在谷歌上搜索任何示例,但唯一的发现与 REST 身份验证有关,与本案例完全无关。在最坏的情况下,我们可以从 JavaScript 执行身份验证并将 JWT 令牌存储在缓存/cookie 中。但是也许 Spring MVC 开箱即用地支持这个,我们只需要在配置中设置一些复选框:-)
查看完整描述

2 回答

?
ITMISS

TA贡献1871条经验 获得超8个赞

对于非 SPA,通常的方法是将身份验证令牌存储在服务器会话中。当客户端发出请求时,通过 JSESSIONID cookie 检索适当的会话(如果禁用 cookie,则将 JSESSIONID 添加到 URL)。

我不确定为什么你不能使用上面的方法,但是如果你想将 JWT 存储在客户端上,一种常见的方法是:

  • 生成令牌时将令牌存储在浏览器的本地或会话存储中,例如window.sessionStorage.authToken = 'token_value'

  • 通过将AuthorizationHTTP 标头设置为令牌的值,将令牌添加到每个后续请求

  • 当用户注销时,从浏览器存储中删除令牌


查看完整回答
反对 回复 2022-11-30
?
郎朗坤

TA贡献1921条经验 获得超9个赞

我可以在服务器端使用带有 JWT 令牌的“Set-Cookie”标头。客户端会将此标头解释为自动设置 cookie。在这种情况下,将令牌传递给每个请求将无需客户端的额外步骤即可完成。
此处描述了一些详细信息https://stormpath.com/blog/where-to-store-your-jwts-cookies-vs-html5-web-storage

在提供更好的选择之前,我将使用它作为可接受的答案。


查看完整回答
反对 回复 2022-11-30
  • 2 回答
  • 0 关注
  • 106 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信