Hir*_*oki 4 cookies html5 redux
我一直在自学Redux,想知道在Redux状态下存储JWT令牌有多安全。
例如,这是一个负责设置和重置令牌的减速器。
export default function loginReducer(state = {
token: "",
}, action) {
switch (action.type) {
case "SET_TOKEN":
{
return {
...state,
token: action.data,
}
break;
}
//other cases here
return state
}
Run Code Online (Sandbox Code Playgroud)
然后,您可以按照以下方式存储令牌。
handleSubmit(values) {
//Calling an API to get a token.
}).then((response) => {
response.json().then((jsonReponse) => {
//This is where the token is stored!
this.props.dispatch(loginAction.setToken(jsonReponse.token));
});
});
}
Run Code Online (Sandbox Code Playgroud)
使用Redux的主要目的是在一个地方组织状态,因此我认为在这里维护令牌是合理的。
但是,我还没有找到一个好的信息资源来说明这样做的安全性/脆弱性。
(我发现了几篇有关localStorage vs Cookies的文章。 据我研究,显然Cookie是存储令牌的安全场所)
任何建议将被认真考虑!
您可以将JWT存储在Redux中,我在那里可以看到您的动机,但请考虑以下因素:
只要遵循Web安全性和JWT令牌的所有最佳做法(即设置expiry),就不必担心将JWT存储在哪里(本地存储或cookie )。
我已经将它们个人存储在本地存储和cookie中。Cookies似乎是一个更好的选择。
将其存储在客户端的实际位置并不重要。如果恶意代码通过XSS攻击进入,则没有什么是真正安全的。如果恶意代码无法入侵,那么没有什么是真正不安全的。只是不要让用户彼此共享商店,而要做其他通常是安全实践的事情。