Обработка сессий с JWT на стороне клиента приложения - PullRequest
0 голосов
/ 03 мая 2019

Я пытаюсь настроить api rest для клиентского приложения.Это приложение будет написано с реагировать и иметь узел / экспресс-сервер.Я использую веб-токены json для аутентификации пользователей по защищенным маршрутам.Я немного запутался в том, как лучше всего обрабатывать пользовательские сеансы с помощью jwt, т. Е. Сделать так, чтобы пользователь все еще входил в систему, когда они уходят и возвращаются или обновляют страницу.

Вот то, чем я сейчас занимаюсьреализации.Когда пользователь входит в систему, я создаю токен доступа и токен обновления.Я отправляю клиенту оба токена и храню их в локальном хранилище.Токен доступа проверяется для каждого защищенного маршрута.

Мой вопрос: когда истекает срок действия токена доступа, как это следует обрабатывать?Насколько я понимаю, токены доступа должны иметь короткий срок жизни.Но я также не хочу, чтобы пользователь входил в систему каждые 30 минут или час или что-то в этом роде.

Мое текущее решение - проверка маркера доступа и, если он истек, отправка 401 клиенту.Затем вернитесь к авторизации с токеном обновления, создав новый токен доступа, затем верните его клиенту и повторите попытку защищенного маршрута с новым токеном доступа.Этот подход кажется утомительным, делает много циклов и не может быть хорошим решением для готового кода.

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

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

Любая помощь или небольшое понимание будет высоко ценится.

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