Fixes in Development Login

This commit is contained in:
Sandip Ghimire 2026-01-19 16:43:30 +05:45
parent e96d5ebfe4
commit 5d01855b12

View File

@ -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);