存储令牌和身份验证状态的安全方法是什么?
What's a secure way to store token & auth state?
这是我的场景:
当用户登录时,会进行 API 调用,如果他的凭据有效,则会返回令牌。我需要在某处存储身份验证状态(以保持用户登录状态)和令牌。该令牌将用于进行其他 API 调用。
我读过这些帖子:1, 2, (以及其他一些帖子)似乎相互矛盾;无论是 localStorage
、cookies
还是 JWT
,都被不同的人认为是不安全的。我也读过 react-redux
,但我不确定。
现在我完全不知道哪种解决方案最适合我的需求,因为我是 reactJs
的新手。那么,正确的做法是什么?
最常见的做法是将您的令牌存储在 cookie 中并将 HttpOnly
设置为 true
,这样任何 javascript 代码都无法以编程方式读取您的令牌。
我想你正在使用 axios
作为 ajax 客户端,你可以像这样提出请求
axios.get('https://example.com/api', {
withCredentials: true
})
通过这样做,axios
会自动将您的 cookie 发送到远程服务器
这是我的场景:
当用户登录时,会进行 API 调用,如果他的凭据有效,则会返回令牌。我需要在某处存储身份验证状态(以保持用户登录状态)和令牌。该令牌将用于进行其他 API 调用。
我读过这些帖子:1, 2, localStorage
、cookies
还是 JWT
,都被不同的人认为是不安全的。我也读过 react-redux
,但我不确定。
现在我完全不知道哪种解决方案最适合我的需求,因为我是 reactJs
的新手。那么,正确的做法是什么?
最常见的做法是将您的令牌存储在 cookie 中并将 HttpOnly
设置为 true
,这样任何 javascript 代码都无法以编程方式读取您的令牌。
我想你正在使用 axios
作为 ajax 客户端,你可以像这样提出请求
axios.get('https://example.com/api', {
withCredentials: true
})
通过这样做,axios
会自动将您的 cookie 发送到远程服务器