Постоянная аутентификация с токеном доступа и токеном обновления - PullRequest
0 голосов
/ 20 октября 2019

Я пытаюсь выяснить, как мне следует сохранять аутентификацию.

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

  • accesstoken (срок действия jwt 15 минут) для хранения в хранилище браузера
  • refreshtoken (срок действия jwt 7 дней) в качестве защищенного файла cookie.

При хранении маркера доступа в локальном хранилище (или хранилище сеансов) приложение React просто проверит, существует ли он в хранилище, и перейдет к визуализации частного маршрута. Таким образом, это означает, что если у пользователя есть недействительный / украденный токен доступа, React, похоже, все еще временно отображает приватную страницу (хотя и без личного содержимого), пока токен не будет проверен и признан недействительным. Это странное поведение?

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

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

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

1 Ответ

0 голосов
/ 20 октября 2019

Перво-наперво: не храните ваш сеанс в localstorage или sessionStorage, всегда используйте файл cookie на стороне сервера для хранения вашего jwt.

Во-вторых, на стороне сервера вам, вероятно, потребуется использовать Redisесли вы масштабируете до нескольких контейнеров узлов, просто создайте для этого промежуточное программное обеспечение Express.

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

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