Вопрос проверяет знание практических способов централизованной работы с access token во frontend.
Добавление access token обычно реализуется централизованно через обёртку над HTTP-клиентом. В случае Axios используются request interceptors. Для Fetch создаётся кастомная функция-обёртка. Это позволяет избежать дублирования кода и ошибок.
Во frontend-приложениях важно добавлять access token одинаково и автоматически во все нужные запросы.
В Axios чаще всего используются interceptors.
Принцип работы:
Перед отправкой запроса interceptor перехватывает конфигурацию
Добавляет заголовок Authorization
Возвращает обновлённый запрос
axios.interceptors.request.use((config) => {
config.headers.Authorization = `Bearer ${accessToken}`
return config
})
Fetch не имеет interceptors, поэтому используется обёртка.
Пример логики:
создать функцию apiFetch
внутри добавить заголовки
вызывать её вместо fetch
function apiFetch(url, options = {}) {
return fetch(url, {
...options,
headers: {
...options.headers,
Authorization: `Bearer ${accessToken}`,
},
})
}
Один источник истины
Проще обновлять логику
Меньше ошибок при масштабировании
Вывод:
Централизованное добавление access token через interceptors или обёртку — стандартное и безопасное решение для frontend-приложений.