Western Waves

import axios from axios“;
import jwt_decode from jwt-decode“;
export const axiosInstance = (history = null) => {
  let authTokens = localStorage.getItem(jwt);

  const axiosInstance = axios.create({
    baseURL: process.env.REACT_APP_APIURL,
    headers: { Authorization: `Bearer ${authTokens}` },
  });
  try{
    jwt_decode(localStorage.jwt);
  }catch(err){
    localStorage.removeItem(jwt);
        window.location.replace(/)
  }
  const decodedToken = jwt_decode(localStorage.jwt);
 
  const refreshToken = async () => {
    try {
      const res = await axios.post(`${process.env.REACT_APP_APIURL}refreshtoken`, {
        token: localStorage.jwt,
        id:decodedToken.id
      });
      localStorage.setItem(jwt, res.data.newToken);
      return res.data.newToken;
    } catch (err) {
      console.log(err);
    }
  };
  //  if(localStorage.getItem(“jwt”)===”undefined”){
  //   localStorage.removeItem(“jwt”);
  // console.log(“uuuuss”);
  // }  else
  //  if(localStorage.getItem(“jwt”)===undefined){
  //   localStorage.removeItem(“jwt”);
  // console.log(“uuuu”);
  // }  else
  if(localStorage.jwt){
 
    axiosInstance.interceptors.request.use(
    async (config) => {
   
      let currentDate = new Date();
      if (decodedToken.exp * 1000 < currentDate.getTime()) {
        const data = await refreshToken();
        config.headers[Authorization] = Bearer + data;
      }
      return config;
    },
    (error) => {
      return Promise.reject(error);
    }
  );}else{
    window.location.replace(/login);
  }
 
  return axiosInstance;
};

Contact us