Делаешь запрос, в middleware проверяешь токен. Если срок истек выбрасываешь ошибку.
На клиенте при этой ошибке, делаешь отправку рефреш токен на отдельный роут.
На нем в middleware делаешь проверку рефреш токена. Если рефреш действитейный, отправляешь
клиенту новую пару аксесс и рефреш токенов. Если нет, то ошибку доступа.