有Spring MVC应用程序-服务器生成HTML,客户端不是SPA(即与任何形式的API无关)。
在认证期间,将生成JWT令牌并将其返回给客户端。授权期间,服务器验证JWT令牌。
如何在客户端存储JWT令牌,并将其通过所有其他请求传递给服务器?请记住,这是Spring MVC应用程序,而不是SPA。
我尝试通过Google搜索任何示例,但唯一的发现与REST身份验证有关,而根本与这种情况无关。
在最坏的情况下,我们可以从JavaScript执行身份验证,并将JWT令牌存储在缓存/ cookie中。但是也许Spring MVC可以立即支持此功能,我们只需要在配置中设置一些复选框即可:-)
答案 0 :(得分:1)
对于非SPA,通常的方法是将身份验证令牌存储在服务器会话中。当客户端发出请求时,将通过JSESSIONID cookie检索适当的会话(如果禁用cookie,则将JSESSIONID添加到URL)。
我不确定为什么不能使用上述方法,但是如果您要将JWT存储在客户端上,则常见的方法是:
window.sessionStorage.authToken = 'token_value'
; Authorization
HTTP标头设置为令牌的值,答案 1 :(得分:0)
我可以在服务器端使用带有JWT令牌的“ Set-Cookie”标头。客户端会将此标头解释为自动设置cookie。在这种情况下,将令牌传递给每个请求都将完成,而无需客户端采取其他步骤。
这里https://stormpath.com/blog/where-to-store-your-jwts-cookies-vs-html5-web-storage
在提供更好的选择之前,我将使用它作为可接受的答案。