aws-amplify 大量使用localStorage。你也可以。
您还可以使用 sessionStorage,除了在窗口关闭后所有内容都会被删除之外,它是相同的。
如果你想保存一些东西:
window.localStorage.setItem(“itemKey”, “itemString”);
要取回它:
const item = window.localStorage.getItem(“itemKey”);
请注意:如果你想保存一个对象,你需要 JSON.stringify 它,然后在检索它时 JSON.parse 它。您只能存储字符串。
作为一般规则,我不会将敏感信息存储在 localStorage 上。
此外,我倾向于在某些组件安装或更新时对其进行某种会话检查。例如,您可以添加:
if (!this.props.session) { // stored session object in redux
Auth.currentSession().then((session) => {
handleSession({ session }); // redux action to store session
});
}
想法是:如果页面刷新,带有这些会话检查的组件将挂载,运行上面的 if 语句,实现会话为空,并尝试从 Auth 检索新的会话对象。如果 Auth 由于用户不再经过身份验证而返回错误,您可以添加额外的逻辑来重定向到您的登录屏幕。