Перед запросом проверять
token.exp
с текущим временем, если устарел или устареет в течение запроса, то сначала запросить новый и сделать запрос.
Тем не менее это лишь оптимизация фронтенда, в любом случае если токен невалидный или просрочен, то бэкэнд вернет 401
P.S. как это сделать в конкретном случае - зависит от инструментария,
- например Effector State Manager позволяет делать цепочку эффектов, в базовом эффекте может быть проверка
- например Axios имеет interceptors, можно реализовать перехватчик запроса, который будет перед вставкой токена его проверять