Spaces:
Sleeping
Sleeping
| import axios from 'axios'; | |
| // Function to get the CSRF token from the cookie | |
| function getCookie(name) { | |
| let cookieValue = null; | |
| if (document.cookie && document.cookie !== '') { | |
| const cookies = document.cookie.split(';'); | |
| for (let i = 0; i < cookies.length; i++) { | |
| const cookie = cookies[i].trim(); | |
| // Does this cookie string begin with the name we want? | |
| if (cookie.substring(0, name.length + 1) === (name + '=')) { | |
| cookieValue = decodeURIComponent(cookie.substring(name.length + 1)); | |
| break; | |
| } | |
| } | |
| } | |
| return cookieValue; | |
| } | |
| const runtimeDefaultBase = (typeof window !== 'undefined' && window.location && window.location.port === '3000') | |
| ? 'http://127.0.0.1:8000/api' | |
| : '/api'; | |
| const API_BASE_URL = process.env.REACT_APP_API_BASE_URL || runtimeDefaultBase; | |
| const api = axios.create({ | |
| baseURL: API_BASE_URL, | |
| withCredentials: true, // This is crucial for sending session cookies | |
| }); | |
| // Add a request interceptor to include both CSRF token and Huggingface token | |
| api.interceptors.request.use( | |
| (config) => { | |
| // Add CSRF token | |
| const csrfToken = getCookie('csrftoken'); | |
| if (csrfToken) { | |
| config.headers['X-CSRFToken'] = csrfToken; | |
| } | |
| // Add Huggingface token if available | |
| const hfToken = localStorage.getItem('huggingfaceToken'); | |
| if (hfToken) { | |
| config.headers['Authorization'] = `Bearer ${hfToken}`; | |
| } | |
| return config; | |
| }, | |
| (error) => { | |
| return Promise.reject(error); | |
| } | |
| ); | |
| export default api; |