Лучшие практики для обновления JWT в SPA? - PullRequest
0 голосов
/ 23 мая 2018

Привет! Я разрабатываю приложение React, которое взаимодействует с Express API.Я пытаюсь реализовать аутентификацию JWT, но я не знаю, что должно произойти, когда истекает срок действия jwt.Это не очень удобно для пользователя, если пользователь вышел из системы по истечении срока действия токена.

Следует ли использовать токены обновления?Как сказано в документации к пакету node-jsonwebtoken ( jsonwebtoken ).Возможно, это не лучший подход.

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

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

Спасибо!

1 Ответ

0 голосов
/ 23 мая 2018

Шаблон, обычно используемый вместе с токенами обновления, состоит в том, чтобы следовать рабочему процессу в соответствии с:

  1. Некоторые вызовы / ресурсы API возвращаются с 401, предупреждая, что токен истек, иногда этосопровождается причиной, например, токен с истекшим сроком действия, недействительный токен
  2. Создать ссылку на вызов API, который не удалось, повторить попытку позже
  3. Попытка обновить токен с помощью refresh_token
  4. Если обновление работает, продолжайте и снова выполните вызов API из очереди
  5. Если обновление не удалось, пользователю необходимо будет снова войти в систему

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

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

Альтернативным подходом может быть реализация API-вызова «heartbeat», который периодически обновляет токен пользователя.пока они находятся на сайте, однако это может сопровождаться побочными эффектами, которые могут быть нежелательны.

...