Мне было интересно, как люди обычно обрабатывают аутентификацию пользователя с помощью redux? Я использую Redux Router, и у меня есть API backend rails, который обрабатывает аутентификацию пользователя через токен аутентификации.
Когда пользователь отправляет форму знака, api вернет токен аутентификации, который будет использоваться для последующих запросов. Первоначально я просто сохранил этот токен аутентификации в едином дереве состояний, и каждый раз, когда я отправляю действие, которое должно выполнить запрос API, требующий аутентификации пользователя, я использую (диспетчер, getState) для извлечения этого токена аутентификации, а затем включаю его в API запрос. Итак: getState(). CurrentUser.auth_token.
Я не уверен, правильно ли я подхожу к этому. Некоторые люди используют localStorage с Redux для аутентификации пользователей для имитации сеансов на стороне сервера? Затем каждый раз, когда выполняется запрос API, я просто проверяю локальное хранилище для токена auth и если он там подписал пользователь?
В результате я использовал js-cookies и сделал Cookie.set, когда пользователь прошел аутентификацию. Мой корневой компонент <App />
затем имеет компонентDidMount, который отправляет действие initAuth(), которое проверяет текущее Cookie, чтобы узнать, действительно ли он действителен. Если это так, то пользователь обязуется подписаться в противном случае, он сбрасывает редуктор аутентификации по умолчанию.
Вот ссылка на репо с аутентификацией пользователя: https://github.com/SpencerCDixon/Kira/blob/master/client/actions/AuthActions.js
Любые советы или ресурсы будут высоко оценены. До сих пор я смотрел пример реального мира и пример React Router. Пример React Router, похоже, использует localStorage, поэтому мне интересно, если это правильный путь. Я заметил, что есть также пакет npm Redux Localstorage.
Хотелось бы узнать, если я случайно открою себя для какой-либо атаки на аутентификацию или если есть лучший способ приблизиться к этому потоку!