api config

This commit is contained in:
='fauz 2025-10-30 13:36:45 +07:00
parent 581ecdc534
commit fbc207f75f

View File

@ -1,4 +1,6 @@
import axios from "axios"
import { useAuthStore } from "@/stores/auth";
const api = axios.create({
baseURL: process.env.VUE_APP_BASE_URL,
clientId : process.env.VUE_APP_CLIENT_ID,
@ -22,26 +24,25 @@ api.interceptors.request.use(
api.interceptors.response.use(
response => response,
async error => {
if(error.response && error.response.status === 401){
const refresh_token = localStorage.getItem('refresh_token')
if(refresh_token){
try {
const res = await axios.post(`${this.baseURL}` + "/oauth/token/refresh/", {
refresh: refresh_token,
});
const originalRequest = error.config;
const auth = useAuthStore();
if(error.response && error.response.status === 401 && !originalRequest._retry){
originalRequest._retry =true;
try {
const res = await axios.post(`${this.baseURL}` + "/oauth/token/refresh/", {},{withCredentials:true});
localStorage.setItem("access_token", res.data.access);
error.config.headers.Authorization = `Bearer ${res.data.access}`;
return api.request(error.config);
} catch (refreshError) {
auth.token = res.data.access_token;
originalRequest.headers.Authorization = `Bearer ${auth.token}`;
// error.config.headers.Authorization = `Bearer ${res.data.access}`;
// return api.request(error.config);
return api(originalRequest)
} catch (refreshError) {
// jika refresh juga gagal, logout
localStorage.removeItem("access_token");
localStorage.removeItem("refresh_token");
window.location = "/login";
}
auth.logout();
return Promise.reject(refreshError)
}
localStorage.removeItem('token')
window.location.href = '/'
}
return Promise.reject(error)
}