Полный гайд как работать с RefreshToken + Ktor + Kotlin Multiplatform
Во многих сервисах существует система аутентификации. В ответ на логин приходит токен в различном виде, но чаще всего он содержит в себе две сущности - sessionToken и refreshToken. Грубо говоря, первый токен подтверждает сессию и то, что пользователь валидный, а refreshToken нужен, чтобы обновлять сессионный токен. Сделано это для того, чтобы если кто-то украдет sessionToken не скомпрометировать пользователя на конкретном устройстве.
Время жизни sessionToken ограничено очень коротким периодом (например, один день), а refreshToken, как правило вечный. Иногда правда и refreshToken делают ограниченным по времени (например неделю) ради безопасности. Так, например, делают в банковских приложениях.
Так как мы постоянно ходим в интернет за авторизованными запросами, то периодически нам нужно обновлять токен и централизованно обновлять токен. Причем это может произойти в любой момент времени, с любым запросом и вероятно (если протух refreshToken) нам нужно показать пользователю экран с формой логина, чтобы он прошел аутентификацию и авторизацию заново. И это тоже может произойти на абсолютно любом экране
В данном гайде мы пройдем по шагам с примерами кода как можно реализовать такой сценарий.