Я использую JSON веб-токены для аутентификации в моем приложении-реактиве. Когда пользователь входит в систему, токен создается и отправляется пользователю для хранения в локальном хранилище. Токен действителен в течение 24 часов. Каждый раз, когда вызывается сервер (nodejs), токен отправляется в заголовке.
Проблема в том, что через 24 часа пользователь должен снова войти в систему. Я не хочу этого, поэтому я начал искать решения. Решение, которое я нашел: refre sh tokens.
Мой подход пока что. Пожалуйста, исправьте меня, если я делаю что-то не так.
1) Пользователь входит в систему. токен аутентификации и refre sh токен отправляются на Пользователь хранить в локальном хранилище. (Это достаточно безопасно?)
2) Пользователь хочет изменить свой профиль. Я отправляю запрос на сервер с токеном auth в заголовке.
3) Сервер получает токен auth. Если токен аутентификации все еще действителен, делайте все, что нужно. Если срок действия токена истек, проверьте, есть ли у пользователя refre sh токен (он все еще действителен). На данный момент я застрял. Должен ли я отправить новый запрос с сервера пользователю с вопросом "у вас есть refre sh токен?" и если да, отправьте этот refre sh токен на сервер, чтобы создать новый токен аутентификации?
Проблема для меня заключается в следующем:
Допустим, пользователь хочет получить последний 10 сообщений из списка. На сервер отправляется запрос с токеном аутентификации .
=> токен аутентификации действителен : ответ представляет собой список из 10 сообщений
=> токен авторизации недействителен : ответ представляет собой новый запрос от сервера к клиенту для refre sh токен
Это 2 разных ответа. Разве это не испортит мой код на стороне клиента? Как мне справиться с этим?
Альтернативой может быть отправка аутентификационного токена И refre sh токена в каждом запросе. Но имеет ли это смысл?