У меня есть приложение реагирования с узлом / экспресс-сервером.В настоящее время я использую JWT для звонков на защищенные маршруты на сервере.Это все отлично работает.Но я хочу, чтобы пользователь входил в систему более 30 минут или около того.
Каков наилучший способ защиты сеансов или обновления токена доступа, когда он истекает в клиентском приложении?
Мои решения:
-Один:
Создание обновления и токена доступа.Пусть токен доступа будет недолгим.И подпишите токен обновления с уникальным идентификатором, данным пользователю в базе данных.Затем проверьте, проверьте токен с этим идентификатором.Затем, когда срок действия маркера доступа истечет, отправьте обратно 401, а затем получите токен обновления из локального хранилища, чтобы создать новые токены, а затем повторите вызов.
Проблема с этим: многоперемотка вперед и назад продолжается и кажется медленной.
-Два
Отправляет и токен обновления, и токен доступа при каждом вызове, и если токен доступа истекиспользуйте токен обновления для создания новых токенов, затем продолжите.
Проблема с этим: Я не понимаю, зачем мне тогда нужно было отправлять 2 токена, я мог бы просто отправить один и закончить работу с этим.Но затем, если один или оба токена будут скомпрометированы, они могут быть восстановлены навсегда.
-Three
Отправьте срок действия токена доступа во внешний интерфейс, и если токен истек, отправьтеобновить токен и проверить его с помощью уникального идентификатора в базе данных.Затем сгенерируйте новые токены и продолжайте.
Проблема с этим: Не уверен, насколько это будет безопасно.Но на данный момент это кажется лучшим решением.
Так что мне интересно, каков наилучший способ обновления маркера доступа после его истечения, чтобы пользователь мог продолжать использовать платформу?