api config
This commit is contained in:
parent
581ecdc534
commit
fbc207f75f
@ -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 {
|
if(error.response && error.response.status === 401 && !originalRequest._retry){
|
||||||
const res = await axios.post(`${this.baseURL}` + "/oauth/token/refresh/", {
|
originalRequest._retry =true;
|
||||||
refresh: refresh_token,
|
try {
|
||||||
});
|
const res = await axios.post(`${this.baseURL}` + "/oauth/token/refresh/", {},{withCredentials:true});
|
||||||
|
|
||||||
localStorage.setItem("access_token", res.data.access);
|
auth.token = res.data.access_token;
|
||||||
error.config.headers.Authorization = `Bearer ${res.data.access}`;
|
originalRequest.headers.Authorization = `Bearer ${auth.token}`;
|
||||||
return api.request(error.config);
|
// error.config.headers.Authorization = `Bearer ${res.data.access}`;
|
||||||
} catch (refreshError) {
|
// 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)
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user