не инвалидируется
RT - долгоживущий, инвалидируемый
есть 3 основных действия
Register(username, password) => void
Login(username, password) => {AT; RT}
Refresh(RT) => {AT;RT}
Угнали AT? он протухнет и всё
Угнали RT? из-за того, что он одноразовый, хакер вынужден будет получить новую пару токенов вызвав Refresh(RT), а в свою очередь пользователь по этому рефрешу уже не сможет получить новую пару и будет перенаправлен в метод Login(username, password) и введя правильные данные он уже перезатрёт RT и хакер опять же по истечению срока его AT просто потеряет доступ.
Надеюсь, ответил на вопрос, зачем RT одноразовый)
А если пользователь помер, то хакер будет использовать полученные токены сколько угодно долго.
Оба токена ограничены по времени
Да, но требуются активные действия от пользователя, чтобы перезатереть RT
Непонятно Токен истёк- пошли менять токен и обновили оба, руками пользователь сам ничего не делать В Вашем же предложении как раз пользователь бесконечно будет ходить в систему и мы не сможем ему запретить не изменив пароль
Обсуждают сегодня