the_goldmayer
@the_goldmayer
Кот.

Авторизация — где инициализировать?

Добрый день!

Я не знаю где правильнее будет инициализировать и какую логику выбрать для работы службы аутентификации сеанса на основе файлов cookie.

Когда мы проходим аутентификацию, мы получаем соответсвующие куки файлы.
Дальше мы диспатчим пользователя.

При загрузке приложения или при перезагрузки страницы, состояние приложения уже не знает про то, что мы авторизованы.

Я, наверное, создал бы ячейку в localStorage и записал бы туда данные пользователя.
При загрузке, если ячейка имеется, то временно мы в состоянии приложения будет авторизованы, в то же время, мы отправим запрос на сервер за пользовательскими данными.

Последнее для двух причин.

Первое - убедиться в том, что мы действительно авторизованы.
Второе - Обновляем пользовательские данные.

Вопрос: Как это делают вообще и как грамотно это реализовать?
Доп. вопрос: Какие файлы создавать, где они должны лежать?

Последний вопрос наверное большее про архитектуру.
Как в идеале это должно быть реализовано? Хотя знаю, что в мире js строгих стандартов нет.

Архитектура в данный момент:

src
- components

-- Something.js


- containers

-- App.js


- actions

-- someActionCreator.js


- reducers

-- someReducer.js
-- rootReducer.js


- index.js

- store.js


Спасибо!
  • Вопрос задан
  • 53 просмотра
Пригласить эксперта
Ответы на вопрос 1
@sakhnyuk
При загрузке приложения или при перезагрузки страницы, состояние приложения уже не знает про то, что мы авторизованы.

Почему? Если тебе сервер отдает токен при авторизации, то и сохраняй его в куках.
Далее, если адрес сервера совпадает с адресом веб страницы, то браузер автоматически будет отправлять куки в каждом запросе, т.е. любой твой запрос на сервер будет проходить проверку авторизованности и никакой логики тебе писать не придется.

При перезагрузке страницы, если данные профиля не пришли по причине того, что ты не авторизован, то отправляй пользователя на страницу логина.

Я, наверное, создал бы ячейку в localStorage и записал бы туда данные пользователя.
При загрузке, если ячейка имеется, то временно мы в состоянии приложения будет авторизованы, в то же время, мы отправим запрос на сервер за пользовательскими данными.

Нет смысла использовать localStorage и тебе показывать нечего пользователю при наличии этой ячейки. Делай запрос, а сервер тебе вернет или не вернет данные. Все просто.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы