Как в jquery организовать последовательные ajax-запросы с дополнительной логикой?
Пилю в первый раз свою jwt-авторизацию.
Есть access_token (15 min expires_in), есть refresh_token (60 days expires_in) Access_token лежит в localStorage, refresh_token лежит в cookie (http-only).
Стоит задача - перед любым запросом на маршруты, требующие авторизации, проверить на клиенте время жизни access_token и, если токен просрочен, то сначала шлем запрос на перевыпуск токенов по определенному маршруту через ajax, который анализирует пришедший refresh-токен и если все в порядке, возвращает новые refresh-токен и access-токен.
Само собой можно каждый запрос делать громоздким с такой вот проверкой, но тут напрашивается куда-то упаковать задачу проверки токена и обновления оного через запрос в случае просрочки. Ибо она будет встречаться в 95% маршрутов.
Первое о чем подумал - jquery beforeSend, но это синхронный метод и запустить в нем какой-то еще запрос, вроде, не то.
Второе, что нащупал в гугле - promise и deffered, но не совсем понял, как это применить в моем случае.
Есть какие-нибудь мысли на этот счет?..
Как лучше всего реализовать вышеописанный механизм?..
Обычно когда есть access_token и refresh_token, access_token используется для выполнения текущих (или последовательных в коротком промежутке) задач, если их нет, но возникает с необходимостью использования, то проверки не пишут а просто используют refresh_token, так как и так и сяк будет минимум 2 запроса, так зачем париться на проверку, если можно заменить.