Является ли использование authReducer с токеном аутентификации хорошей практикой? - PullRequest
1 голос
/ 24 марта 2019

Я читал различные учебные пособия о том, как использовать, например, JWT в приложении React + Redux.

В этих руководствах JWT обычно сохраняется в локальном хранилище и имеет срок действия. Это хорошо.

Однако я сталкиваюсь с некоторыми примерами использования authReducer, который читает из нагрузки JWT и устанавливает логическое состояние isAuthed на true или false. Это состояние используется для обработки изменений пользовательского интерфейса, таких как AuthedNavbar или настройка частных маршрутов.

Меня беспокоит то, что состояние authReducer становится устаревшим. Например, если пользователь оставляет приложение открытым, состояние isAuthed будет по-прежнему истинным, даже если токен мог истечь.

(Конечно, серверные маршруты будут защищены с помощью jwt, поэтому пользователь не сможет получить доступ к ресурсам. Однако у него все еще будет плохой UX на внешнем интерфейсе.)

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

Не все состояния должны обрабатываться в редуксе. Мы используем реагируем локальное состояние и обрабатываем состояние маршрутизатора за пределами избыточного.

Поэтому я думаю, что в качестве источника правды лучше использовать только локальное хранилище.

Что вы думаете? Надеюсь получить несколько предложений!

1 Ответ

1 голос
/ 24 марта 2019

Не сохранять данные isAuthed в системе хранения. Но только место использования access_token. Тогда, даже если пользователь изменится, у него не будет проблем. Потому что вы будете проверять его через систему баз данных и проверять access_token, а также узнаете isAuthed из базы данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...