Почему JWT токены не обновляются после истечения срока? JWT не обновляется автоматически, потому что это статичный токен без встроенного механизма продления. Когда срок действия истекает, сервер просто отклоняет его, и для получения нового токена нужно использовать refresh token — обратитесь к эндпоинту /refresh в вашем API.
Практическое уточнение: добавьте в middleware проверку ошибки TokenExpiredError, а в ответе на неё — автоматический вызов метода обновления. Мини-чек-лист: 1) сохраните refresh token в защищённом хранилище, 2) реализуйте маршрут /refresh, принимающий refresh token и возвращающий новый JWT, 3) пропишите логику перехвата ошибок и повтора исходного запроса после обновления.