存储令牌和身份验证状态的安全方法是什么?

What's a secure way to store token & auth state?

这是我的场景:

当用户登录时,会进行 API 调用,如果他的凭据有效,则会返回令牌。我需要在某处存储身份验证状态(以保持用户登录状态)和令牌。该令牌将用于进行其他 API 调用。

我读过这些帖子:1, 2, (以及其他一些帖子)似乎相互矛盾;无论是 localStoragecookies 还是 JWT,都被不同的人认为是不安全的。我也读过 react-redux,但我不确定。

现在我完全不知道哪种解决方案最适合我的需求,因为我是 reactJs 的新手。那么,正确的做法是什么?

最常见的做法是将您的令牌存储在 cookie 中并将 HttpOnly 设置为 true,这样任何 javascript 代码都无法以编程方式读取您的令牌。

我想你正在使用 axios 作为 ajax 客户端,你可以像这样提出请求

axios.get('https://example.com/api', {
  withCredentials: true
})

通过这样做,axios 会自动将您的 cookie 发送到远程服务器