AWS расскажет, как реализовать currrentSession в приложении React с Redux? - PullRequest
0 голосов
/ 20 мая 2018

Документация по расширению AWS показывает

let session = Auth.currentSession(); // CognitoUserSession => { idToken, refreshToken, accessToken }

для получения текущего сеанса, который работает нормально.

Однако я не уверенкак реализовать это в моем приложении React с Redux.Все данные в хранилище исчезают, когда пользователь перезагружает веб-страницу вместе со всеми пользовательскими интерфейсами для вошедшего в систему пользователя.

Я хочу сохранить этап входа в систему таким, какой он есть, даже если пользователь обновит страницу, пока CognitoUserSession действителен, и, возможно, сохранит некоторые данные, которые у меня уже есть в хранилище.

Что такоелучший способ реализовать это?

1 Ответ

0 голосов
/ 30 мая 2018

aws-усиление интенсивно использует 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 возвращает ошибку, так как пользователь больше не проходит аутентификацию, вы можете добавить дополнительную логику для перенаправления на экран входа в систему.

...