2016-07-17 1 views
5

Какие существуют подходы к уведомлению пользователя об истекшем сеансе в приложении React/Redux?Как предупредить, когда срок действия сеанса (JWT) истек в React/Redux

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

Является типичным способом пассивной проверки ответа при попытке получить доступ к конечной точке API, использовать поле expires для установки тайм-аута на стороне клиента, активно обеспечить достоверность сеанса или какой-либо другой техники? Я особенно обеспокоен несохраненными изменениями пользователей и хотел бы как можно скорее проинформировать пользователя о завершенной сессии.

ответ

3

Мой текущий подход хранить JWT в LocalStorage, при запуске приложения, я загрузке маркер, пытается загрузить данные пользователя с маркером, если это не удается, просто перенаправлять/логин

Тогда Я использую jwt только в модуле api, а не в магазине вообще.

Мой модуль Api знает на основании запросов, когда использовать маркер и когда не

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

Мой модуль api, который также отделен от redux, знает, когда использовать jwt, а когда нет.

Чтобы сделать эту работу более абстрактные Я создал промежуточное программное обеспечение, которое реагирует на каждое действие, если полезная нагрузка является error и значение Not Authenticated

это ошибка я trowing в модуле апи, если ответ сервера не работает из-за auth. actionCreator просто отправляет ошибку в catch, и промежуточное ПО реагирует на нее.

Так что на самом деле его до вас, как это сделать, весь код, о котором я говорю, составляет ~ 100 LOC или около того .. только некоторые методы, которые обрабатывают эти вещи.

+1

Многие люди, я бы предположил, используют один и тот же механизм промежуточного программного обеспечения для auth, могут помочь, если вы продемонстрируете, как выглядят ваши. – Himmel