我了解基于 cookie 的身份验证和基于 JWT 的身份验证之间的区别。
我知道在通过 fetch 调用 API 之前,我可以访问本地存储以获取令牌值并通过请求传递它。 如果我重新加载页面,这将如何工作?如果我使用了 cookie,它会自动在 HTTP 请求中发送。
请帮忙澄清一下。
答案 0 :(得分:0)
您的服务器应该向您的客户端发送一个仅限 http 的 cookie。 cookie 可以包含 jwt 令牌。然后,只需将此 cookie 附加到您的所有请求中即可。
如果您使用 axios,则可以使用 withCredentials: true
来完成。如果您使用的是普通 XHR https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Credentials 以获取更多信息。
所以当用户打开页面时,调用服务器,并知道他是否登录。如果是这样,只需在 sessionStorage 中添加一个 isLogged: true
。
这将是一个简单而安全的解决方案。