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 { 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);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user