axios interseptor
Wed Jul 30 2025 03:44:10 GMT+0000 (Coordinated Universal Time)
Saved by @Ajay1212
import axios from 'axios'; import { logout } from '../middelware/auth'; export const LOGIN_TOKEN = 'token'; export const keys = [LOGIN_TOKEN]; // export const BASE_URL = 'http://192.168.1.29:8888/.netlify/functions/api/'; export const BASE_URL = 'https://diamand-api.netlify.app/.netlify/functions/api/'; // export const BASE_URL = 'http://192.168.2.36:8000/api/'; const apiAxios = axios.create({ baseURL: BASE_URL, headers: { Accept: 'application/json', 'Content-type': 'application/json', }, }); const uploadImageAxiosApi = axios.create({ baseURL: BASE_URL, headers: { Accept: 'application/json', 'content-type': 'multipart/form-data', }, }); export const getToken = async () => { return await localStorage.getItem(LOGIN_TOKEN); }; export const setToken = async (token:any) => { // apiAxios.defaults.headers.common["Authorization"] = `Bearer ${token}`; return await localStorage.setItem(LOGIN_TOKEN, token); }; apiAxios.interceptors.request.use(async (config) => { const token = await getToken(); if (token) { config.headers.Authorization = ` ${token}`; } return config; }); uploadImageAxiosApi.interceptors.request.use(async (config) => { const token = await getToken(); if (token) { config.headers.Authorization = ` ${token}`; } return config; }); const axiosError = (setIsLoggedIn:any)=>{ apiAxios.interceptors.response.use( function (response) { return response; }, function (error) { if (error && error.response && error.response.status === 401) { logout() setIsLoggedIn(false) } return Promise.reject(error); } ); uploadImageAxiosApi.interceptors.response.use( function (response) { return response; }, function (error) { if (error && error.response && error.response.status === 401) { logout() setIsLoggedIn(false) } return Promise.reject(error); } ); } export {uploadImageAxiosApi , axiosError} export default apiAxios; //////////////////////////////////////////////// middlewer ========= // auth.js import UserService from "../Services/UserService"; // Constants const TOKEN_KEY = 'token'; // Function to set the user's authentication token in AsyncStorage export const setAuthToken = async (token:any) => { try { await localStorage.setItem(TOKEN_KEY, token); } catch (error) { console.error('Error setting auth token:', error); } }; // Function to get the user's authentication token from localStorage export const getAuthToken = async () => { try { const token = await localStorage.getItem(TOKEN_KEY); return token; } catch (error) { console.error('Error getting auth token:', error); return null; } }; // Function to remove the user's authentication token from localStorage export const removeAuthToken = async () => { try { await localStorage.removeItem(TOKEN_KEY); } catch (error) { console.error('Error removing auth token:', error); } }; // Function to check if the user is authenticated export const isAuthenticated = async () => { const token = await getAuthToken(); return !!token; // Returns true if the token exists, indicating the user is authenticated }; // Function to perform user login export const login = async (values:any) => { try { const response = await UserService.userLogin(values) if (response.status === 200) { const token = response.data.token; // const userId = response.data.user.id; await setAuthToken(token); // await localStorage.setItem('userId',userId) return { success: true, data: response.data }; } else { console.error('Login failed:', response.data); return { success: false, error: response.data }; } } catch (error) { console.error('Error during login:', error); return false; } }; // Function to perform user logout export const logout = async () => { await removeAuthToken(); await localStorage.removeItem('userId'); }; //////////////////////////////////////// import axiosApi,{uploadImageAxiosApi} from "../utils/axiosapi" const UserService = { userLogin: (data:any) => axiosApi.post('user/password-login', data).then((resp:any) => { return resp }).catch((error:any) => { return error.response; }), //product list fetchProductList: ({data,type}:any) => axiosApi.get(`${type}/`,data).then((resp: any) => { return resp }), }; export default UserService;
Comments