Я создаю аутентификацию на основе токенов (Node.js с использованием паспорта / JWT с клиентом angular).
После того, как пользователь вводит свои учетные данные, он получает токен доступа, который он отправляет в каждом запросе внутри заголовка (заголовок: bearer TOKEN).
Я не хочу выдавать запрос на вход каждый раз, когда истекает срок действия его токена доступа (думаю, почти каждый день), я слышал о Обновить токены. Токен обновления никогда не истекает (или редко истекает) и может обновлять токены на неопределенный срок. Когда срок действия токена доступа истекает, клиент может отправить запрос на обновление, чтобы получить новый токен доступа, отправив свой токен обновления.
Я кое-чего не понимаю, возможно, я что-то упускаю:
Как долгоживущие / никогда не истекающие токены обновления не нарушают безопасность короткоживущих токенов доступа.
Файлы cookie можно украсть и использовать до истечения срока их действия. Токены недолговечны, поэтому они более безопасны, но если я предоставлю долгоживущий токен обновления, я потеряю преимущество использования токенов.
ПРИМЕЧАНИЕ. Мне известно, что токены обновления отправляются при первоначальном входе в систему, поэтому их нельзя подделать при каждом запросе, но если они подделываются при первоначальном запросе, они уязвимы.