【问题标题】:Where to store user information in redux store or in local storage?在 redux 存储或本地存储中存储用户信息的位置?
【发布时间】:2020-03-17 02:59:23
【问题描述】:

我在纠结登录后如何存储用户信息?

将所有信息存储在本地存储或redux存储中是个好主意吗?

成功登录后,API 返回一个带有用户角色和权限的大对象以及其他一些信息。

我是 react-redux 的新手,请帮忙!

谢谢!

【问题讨论】:

    标签: reactjs authentication redux react-redux rbac


    【解决方案1】:

    在 redux store 中存储用户信息。如果您想在重新加载应用程序后保留它(我不推荐它,请参阅下面的答案中的详细信息),您可以使用redux-persist

    但这实际上取决于您使用的是哪种身份验证。通常,您应该只使用(并保留)一些身份验证令牌(而不是所有用户信息)。您可以将此令牌存储在 cookie 中,并在每次应用程序加载时使用它(用于后端请求)获取真实的用户信息(然后将其存储在 redux 存储中)。

    【讨论】:

    • 感谢您的回答,react-persist 似乎是一个解决方案,因为我已经害怕在刷新时丢失存储数据。
    • 是的,redux-persist 可以帮助您。但正如我所提到的,你不应该相信你的客户端存储(无论是本地存储还是 redux 存储)关于“身份验证状态”,尤其是在关闭你的应用程序之后(例如在刷新时,你正在关闭旧的并开始新的) )。您的服务器是一个,如果您真的经过身份验证,谁应该检查(在每个请求上)。为此,身份验证令牌(通常存储在 cookie 中)是正确的。
    • 谢谢!我明白你的意思了。我只想要我的不同组件中的一条用户信息,但我不知道哪个是从 redux-store 或 localstorage 获取详细信息的好地方。
    • 好的,如果您的应用程序中已经有 Redux 存储,我看不出有任何理由不应该在其中存储用户信息。它与从后端请求的任何数据类型相同。我很快也在这个答案的第一句话中写道。如果你的应用程序中还没有 Redux 存储,最好将用户信息存储在本地存储中,而不是仅仅为此引入 Redux 存储。
    【解决方案2】:

    我们可以在本地存储中存储所有通用数据,例如城市和国家列表。如果要注销用户,当用户关闭选项卡时,可以使用会话存储。因此,您可以将用户信息存储在会话存储或 cookie 中。
    检查以下链接以了解有关本地存储和会话存储的区别。 Link

    【讨论】:

    • 您是否也在使用 Redux 存储的应用程序中这样做?如果是这样,请问不将其存储在 Redux 存储中有什么好处?
    • 感谢您的回答,由于会话存储仅保留当前选项卡的数据,但我可能需要通过应用程序输入用户信息,将用户信息存储在本地存储中是一种好习惯吗?也可能有一些敏感信息。
    猜你喜欢
    • 2020-03-20
    • 2020-07-11
    • 2014-05-05
    • 1970-01-01
    • 2020-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多