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 { auth } from "./endpoints";
import { isDevelopment } from "../utils/common.util"; import { isDevelopment } from "../utils/common.util";
import jwtServices from "./jwt"; import jwtServices from "./jwt";
import router from "@/router";
const apiURL: string = DOLPHIN.config.API_BASE_URL; const apiURL: string = DOLPHIN.config.API_BASE_URL;
@ -32,50 +31,46 @@ api.interceptors.request.use(
); );
api.interceptors.response.use( api.interceptors.response.use(
function (response) { (response) => response,
return response; async (error) => {
}, const originalRequest = error.config;
async function (error) { if (!error.response) {
const { return Promise.reject(error);
config, }
response: { status },
} = error; const status = error.response.status;
const originalRequest = config;
const authStore = useAuth(); const authStore = useAuth();
const { isAuthenticated } = storeToRefs(authStore); 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) { if (status === 401 && !originalRequest._retry) {
originalRequest._retry = true; originalRequest._retry = true;
try { try {
let data = {}; let data = {};
if (isDevelopment()) { if (isDevelopment()) {
const refreshToken = jwtServices.getRefreshToken(); const refreshToken = jwtServices.getRefreshToken();
data = { if (!refreshToken) throw new Error("No refresh token");
refresh: refreshToken, data = { refresh: refreshToken };
};
} }
await api await api.post(auth.tokenRefresh, data).then((response) => {
.post(auth.tokenRefresh, data, { if (isDevelopment()) {
withCredentials: true, const token = response.data.access;
}) jwtServices.setToken(token);
.then((response) => { originalRequest.headers["Authorization"] = `Bearer ${token}`;
if (isDevelopment()) { }
const token = response.data.access; isAuthenticated.value = true;
jwtServices.setToken(token); });
originalRequest.headers["Authorization"] = `Bearer ${token}`;
}
});
isAuthenticated.value = true;
return await axios(originalRequest); return await axios(originalRequest);
} catch (e) { } catch (e) {
console.error("Token refresh failed", e); console.error("Token refresh failed", e);
isAuthenticated.value = false; isAuthenticated.value = false;
throw e;
}
} else if (status === 401 && originalRequest._retry) {
isAuthenticated.value = false;
router.push({ name: "login" });
if (isDevelopment()) {
jwtServices.destroyToken(); jwtServices.destroyToken();
throw e;
} }
} }
return Promise.reject(error); return Promise.reject(error);