В зависимости от вашего бэкэнда (Ruby on Rails, NodeJS и т. Д.) Могут быть разные подходы. Это отличный пост в блоге (предупреждение: в этом посте используется некий красочный язык), в котором рассматриваются некоторые проблемы с аутентификацией, в частности сброс пароля.
Если честно, вы уверены, что вам вообще нужен токен обновления?
Почему бы просто не выдать новый токен Bearer с использованием обновленных учетных данных для текущего активного сеанса (тот, который отправил запрос на изменение адреса электронной почты / пароля)?
Случай 1: аутентифицированный сеанс пользователя
Пользователь имеет активные сеансы и обновляет свой пароль или электронную почту в одном из этих сеансов
- сделать недействительными сеансы, которые мы не использовали для обновления пароля / электронной почты
- нет оснований предполагать, что учетная запись была взломана (они уже вошли в систему,
при условии, что срок действия ваших токенов авторизации истекает в разумные сроки)
- выдать новый токен на предъявителя с использованием обновленных учетных данных (пароль / адрес электронной почты)
- рекомендация: отправьте электронное письмо на счет
подтверждение смены пароля
Случай 2: забытый пароль
Пользователь вышел из системы и запросил изменение пароля (не то, что вы просили об этом специально, но также и то, почему токен обновления не требуется, даже если используется специальный сеанс):
- отправить ссылку для сброса
- пользователь щелкает эту ссылку, которая создает специальный сеанс, в котором они вошли в систему
и можете обновить свой пароль
- пользователь обновляет свой пароль, делает недействительными все другие сеансы (если есть), выдает
новый действующий токен авторизации для текущего сеанса на основе обновленных учетных данных
- рекомендация: заставьте их обновить пароль, прежде чем предпринимать какие-либо другие действия
Надеюсь, это ответит на ваш вопрос!