[英]How to run proxy for react/redux application on AWS Amplify
[英]AWS amplify how to implement currrentSession on a React app with Redux?
let session = Auth.currentSession(); // CognitoUserSession => { idToken, refreshToken, accessToken }
檢索當前工作正常的會話。
但是,我不確定如何通過Redux將其實現到我的React應用程序中。 當用戶重新加載網頁以及已登錄用戶的所有UI時,存儲中的所有數據都會消失。
我希望保持登錄階段,即使用戶刷新頁面也是如此,只要CognitoUserSession有效,並且也許保留一些我已經在商店中的數據即可。
實現此目的的最佳方法是什么?
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返回錯誤,則可以添加其他邏輯以重定向到登錄屏幕。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.