【发布时间】:2020-03-17 02:59:23
【问题描述】:
我在纠结登录后如何存储用户信息?
将所有信息存储在本地存储或redux存储中是个好主意吗?
成功登录后,API 返回一个带有用户角色和权限的大对象以及其他一些信息。
我是 react-redux 的新手,请帮忙!
谢谢!
【问题讨论】:
标签: reactjs authentication redux react-redux rbac
我在纠结登录后如何存储用户信息?
将所有信息存储在本地存储或redux存储中是个好主意吗?
成功登录后,API 返回一个带有用户角色和权限的大对象以及其他一些信息。
我是 react-redux 的新手,请帮忙!
谢谢!
【问题讨论】:
标签: reactjs authentication redux react-redux rbac
在 redux store 中存储用户信息。如果您想在重新加载应用程序后保留它(我不推荐它,请参阅下面的答案中的详细信息),您可以使用redux-persist。
但这实际上取决于您使用的是哪种身份验证。通常,您应该只使用(并保留)一些身份验证令牌(而不是所有用户信息)。您可以将此令牌存储在 cookie 中,并在每次应用程序加载时使用它(用于后端请求)获取真实的用户信息(然后将其存储在 redux 存储中)。
【讨论】:
redux-persist 可以帮助您。但正如我所提到的,你不应该相信你的客户端存储(无论是本地存储还是 redux 存储)关于“身份验证状态”,尤其是在关闭你的应用程序之后(例如在刷新时,你正在关闭旧的并开始新的) )。您的服务器是一个,如果您真的经过身份验证,谁应该检查(在每个请求上)。为此,身份验证令牌(通常存储在 cookie 中)是正确的。
我们可以在本地存储中存储所有通用数据,例如城市和国家列表。如果要注销用户,当用户关闭选项卡时,可以使用会话存储。因此,您可以将用户信息存储在会话存储或 cookie 中。
检查以下链接以了解有关本地存储和会话存储的区别。 Link
【讨论】: