у меня есть JWT с сроком работы например 10 минут и refresh токен 15 минут.
сервер возаращает мне эти 2 токена и я на фронте их пишу в localStorage.
При запросе я передаю в хедере jwt_token (access_token)
Представим что его срок уже истек и мне выдается сообщение что истёк срок,
я в catch обрабатываю эту ошибку и шлю запрос на сервер со своим refresh_token
И получаю новую пару jwt и refresh
И работаю уже с новыми токенами.
Но представим что злостный хакер, каким то образом подкинул вирусняк который парсит мой локалстораж и передает хакеру мой access_token и refresh_token
И он успевает им воспользоваться на моем сайте и быстрее меня воспользовался refresh token и он просто посылает запрос на сервер, генерит новую пару и продолжает дальше работать. А мои jwt умирает по сроку действия, а refresh не валидный, так как злоумышленник успел сгенерить новый быстрее меня.
Соответственно меня кидает на страницу логина, я ввожу логин и пароль и в базе его рефреш токен удаляется а мой новый генерится, и возвращается мне и все, он ничего не сможет сделать, точнее сможет пока его jwt не закончиться по сроку действия. Все верно понимаю? или где то что то упускаю?
Блэклист для жвт Иначе вся суть жвт для фронта становится кучей жопной боли
То есть если я войду у вас на сайте с десктопа, а потом с телефона, то мой рефреш токен с десктопа удалится?
Обсуждают сегодня