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