setInterval(()=>{
/*
1й момент - честные access token
проверяем если до exp осталось меньше минуты/скольки то секунд (от интервала и времени токена отталкиваемся), то делаем запрос на сервер с refresh
2й момент - черные списки
стандарт не предусматривает возможности "обнулить токен" на других устройствах или еще где-то, например когда ты меняешь пароль или просто хочешь чтобы все токены протухли, НО
можно реализовать на сервере в быстром хранилище (redis) черные или белые списки с токенами (при выдаче заносить с временем экспирации) и уже строить логику на сервере и проверять не только сигнатуру (что подписан тем же сервером) но и нахождение в черном списке. Нужно ли это проверять тут в setInterval не скажу - зависит от приложения
*/
}, /* обычно раз в 10-60 секунд*/);