Fixed issue where expired sessions showed "Unauthorized User" by implementing token refresh or redirect to login page.
This commit is contained in:
parent
130fffcc16
commit
12c592b59c
@ -21,8 +21,7 @@ axiosClient.interceptors.request.use(
|
||||
if (token) {
|
||||
config.headers["Authorization"] = `Bearer ${token}`;
|
||||
config._retry = true;
|
||||
}
|
||||
else{
|
||||
} else {
|
||||
config._retry = false;
|
||||
}
|
||||
}
|
||||
@ -37,7 +36,6 @@ axiosClient.interceptors.response.use(
|
||||
(response) => response,
|
||||
|
||||
async (error) => {
|
||||
|
||||
const originalRequest = error.config;
|
||||
|
||||
if (!originalRequest) {
|
||||
@ -81,17 +79,17 @@ axiosClient.interceptors.response.use(
|
||||
} else if (error.response) {
|
||||
if (error.config.url.indexOf("refresh-token") != -1) {
|
||||
//showToast("Server is unreachable. Try again later!", "error");
|
||||
}
|
||||
}
|
||||
// else {
|
||||
// // showToast(error.response.data.message, "error"); // repeted toast
|
||||
// }
|
||||
if (error.response.status === 401 && !originalRequest._retry) {
|
||||
if (error.response.status === 401) {
|
||||
originalRequest._retry = true;
|
||||
try {
|
||||
// Get the refresh token from secure storage
|
||||
const refreshToken = localStorage.getItem("refreshToken");
|
||||
|
||||
if (!refreshToken) {
|
||||
if (!refreshToken || error.response.data.errors === "Invalid or expired refresh token.") {
|
||||
// Redirect to login if refresh token is not available
|
||||
redirectToLogin();
|
||||
return Promise.reject(error);
|
||||
@ -108,7 +106,7 @@ axiosClient.interceptors.response.use(
|
||||
|
||||
const { token, refreshToken: newRefreshToken } = response.data.data;
|
||||
localStorage.setItem("jwtToken", token);
|
||||
localStorage.setItem("refreshToken", newRefreshToken);
|
||||
localStorage.setItem("refreshToken", newRefreshToken);
|
||||
|
||||
// Retry the original request with the new token
|
||||
originalRequest.headers["Authorization"] = `Bearer ${token}`;
|
||||
@ -116,7 +114,6 @@ axiosClient.interceptors.response.use(
|
||||
// Retry the original request
|
||||
return axiosClient(originalRequest);
|
||||
} catch (err) {
|
||||
|
||||
// Redirect to login if token refresh fails
|
||||
redirectToLogin();
|
||||
return Promise.reject(err);
|
||||
@ -192,5 +189,5 @@ export const api = {
|
||||
};
|
||||
//export default axiosClient;
|
||||
function redirectToLogin() {
|
||||
// window.location.href = "/auth/login";
|
||||
window.location.href = "/auth/login";
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user