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, но не совсем понял, как это применить в моем случае.
Есть какие-нибудь мысли на этот счет?..
Как лучше всего реализовать вышеописанный механизм?..
https://gist.github.com/yajra/5f5551649b20c8f668aec48549ef5c1f
Обсуждают сегодня