import axios from "axios"; import { refreshToken } from "@/actions/auth"; // import jwt_decode from "jwt-decode"; const axiosJWT = axios.create({ baseURL: "http://localhost:5000", withCredentials: true, }); axiosJWT.interceptors.request.use( async (config) => { // const response = await refreshToken(); // const decoded = jwt_decode(response.access_token); // const expire = decoded.exp; // const currentDate = Date.now(); // if (expire * 1000 < currentDate) { const response = await refreshToken(); // console.log(response); if (response.success) config.headers.Authorization = `Bearer ${response.access_token}`; // config.withCredentials = true; return config; // } }, async (error) => { const originalConfig = err.config; // if (error.response.status === 403 || error.response.status === 401) { try { const response = await refreshToken(); if (response.success) { // axiosJWT.defaults.headers.Authorization = `Bearer ${response.access_token}`; originalConfig.headers.Authorization = `Bearer ${response.access_token}`; return axiosJWT(originalConfig); } } catch (error) { return Promise.reject(error); } // } return Promise.reject(error); } ); export default axiosJWT;