/
space_verse
/
TodoListAppFrontend
Обзор
Документация
Войти
/
space_verse
/
TodoListAppFrontend
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
src/api.js
44 строки
949 B
spacer
IMPROVE: authorization;
01 сен 2025, 03:07
01 сен 2025, 03:07
c3d02ac
Код
Авторство
О чём код?
import axios from "axios"; const API_URL = `http://localhost:8000/api`; const ACCESS_TOKEN_KEY = 'todo_telegram_test_web_app'; const $api = axios.create({ withCredentials: true, baseURL: API_URL, }); $api.interceptors.request.use(config => { const accessToken = localStorage.getItem(ACCESS_TOKEN_KEY); config.headers.Authorization = `Bearer ${accessToken}`; return config; }); const tryToRefresh = async () => { const response = await axios.put(`${API_URL}/auth/refresh`, {}, { withCredentials: true, }); const newAccessToken = response.data.access_token; localStorage.setItem(ACCESS_TOKEN_KEY, newAccessToken); return !!newAccessToken; } $api.interceptors.response.use(async response => { if (response.status == 401) { await tryToRefresh(); return await $api(response.config); } return response; }) export { $api, ACCESS_TOKEN_KEY, tryToRefresh, }