JWT 本地存储、Cookie 和页面重新加载

时间:2021-06-02 07:42:15

标签: javascript jwt local-storage

我了解基于 cookie 的身份验证和基于 JWT 的身份验证之间的区别。

我知道在通过 fetch 调用 API 之前,我可以访问本地存储以获取令牌值并通过请求传递它。 如果我重新加载页面,这将如何工作?如果我使用了 cookie,它会自动在 HTTP 请求中发送。

请帮忙澄清一下。

1 个答案:

答案 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

这将是一个简单而安全的解决方案。