Fixes in Development Login
This commit is contained in:
parent
e96d5ebfe4
commit
5d01855b12
|
|
@ -4,7 +4,6 @@ import { storeToRefs } from "pinia";
|
|||
import { auth } from "./endpoints";
|
||||
import { isDevelopment } from "../utils/common.util";
|
||||
import jwtServices from "./jwt";
|
||||
import router from "@/router";
|
||||
|
||||
const apiURL: string = DOLPHIN.config.API_BASE_URL;
|
||||
|
||||
|
|
@ -32,50 +31,46 @@ api.interceptors.request.use(
|
|||
);
|
||||
|
||||
api.interceptors.response.use(
|
||||
function (response) {
|
||||
return response;
|
||||
},
|
||||
async function (error) {
|
||||
const {
|
||||
config,
|
||||
response: { status },
|
||||
} = error;
|
||||
const originalRequest = config;
|
||||
(response) => response,
|
||||
async (error) => {
|
||||
const originalRequest = error.config;
|
||||
if (!error.response) {
|
||||
return Promise.reject(error);
|
||||
}
|
||||
|
||||
const status = error.response.status;
|
||||
const authStore = useAuth();
|
||||
const { isAuthenticated } = storeToRefs(authStore);
|
||||
|
||||
if (status === 401 && originalRequest.url === auth.tokenRefresh) {
|
||||
jwtServices.destroyToken();
|
||||
isAuthenticated.value = false;
|
||||
return Promise.reject(error);
|
||||
}
|
||||
|
||||
if (status === 401 && !originalRequest._retry) {
|
||||
originalRequest._retry = true;
|
||||
try {
|
||||
let data = {};
|
||||
if (isDevelopment()) {
|
||||
const refreshToken = jwtServices.getRefreshToken();
|
||||
data = {
|
||||
refresh: refreshToken,
|
||||
};
|
||||
if (!refreshToken) throw new Error("No refresh token");
|
||||
data = { refresh: refreshToken };
|
||||
}
|
||||
await api
|
||||
.post(auth.tokenRefresh, data, {
|
||||
withCredentials: true,
|
||||
})
|
||||
.then((response) => {
|
||||
if (isDevelopment()) {
|
||||
const token = response.data.access;
|
||||
jwtServices.setToken(token);
|
||||
originalRequest.headers["Authorization"] = `Bearer ${token}`;
|
||||
}
|
||||
});
|
||||
isAuthenticated.value = true;
|
||||
await api.post(auth.tokenRefresh, data).then((response) => {
|
||||
if (isDevelopment()) {
|
||||
const token = response.data.access;
|
||||
jwtServices.setToken(token);
|
||||
originalRequest.headers["Authorization"] = `Bearer ${token}`;
|
||||
}
|
||||
isAuthenticated.value = true;
|
||||
});
|
||||
return await axios(originalRequest);
|
||||
} catch (e) {
|
||||
console.error("Token refresh failed", e);
|
||||
isAuthenticated.value = false;
|
||||
throw e;
|
||||
}
|
||||
} else if (status === 401 && originalRequest._retry) {
|
||||
isAuthenticated.value = false;
|
||||
router.push({ name: "login" });
|
||||
if (isDevelopment()) {
|
||||
jwtServices.destroyToken();
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
return Promise.reject(error);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user