This commit is contained in:
hamid zarghami
2025-09-18 13:20:16 +03:30
parent 7b51a18a4a
commit 4ed55bd1b7
13 changed files with 308 additions and 87 deletions
+10 -9
View File
@@ -8,6 +8,7 @@ import {
removeRefreshToken,
} from "./func";
import { refreshToken } from "../app/auth/service/Service";
import { ApiResponse, RefreshTokenResponse } from "../app/auth/types/Types";
import { BASE_URL } from "./const";
declare global {
@@ -47,32 +48,32 @@ axiosInstance.interceptors.response.use(
if (!refreshTokenValue) {
await removeRefreshToken();
await removeToken();
window.location.href = `/auth`;
window.location.href = `/`;
return;
}
const { data } = await refreshToken({
const data: ApiResponse<RefreshTokenResponse> = await refreshToken({
token: refreshTokenValue,
});
if (data?.accessToken?.token) {
await setToken(data?.accessToken?.token);
if (data.refreshToken?.token) {
await setRefreshToken(data.refreshToken?.token);
if (data?.results?.data?.accessToken?.token) {
await setToken(data?.results?.data?.accessToken?.token);
if (data?.results?.data?.refreshToken?.token) {
await setRefreshToken(data?.results?.data?.refreshToken?.token);
}
originalRequest.headers.Authorization = `Bearer ${data.accessToken.token}`;
originalRequest.headers.Authorization = `Bearer ${data.results.data.accessToken.token}`;
return axiosInstance(originalRequest);
} else {
await removeRefreshToken();
await removeToken();
window.location.href = `/auth`;
window.location.href = `/`;
return;
}
} catch (refreshError) {
console.error("Token refresh failed:", refreshError);
await removeToken();
await removeRefreshToken();
window.location.href = `/auth`;
window.location.href = `/`;
return Promise.reject(refreshError);
} finally {
window.isRefreshingToken = false;
+1 -1
View File
@@ -1,6 +1,6 @@
export const TOKEN_NAME = "sh_token";
export const REFRESH_TOKEN_NAME = "sh_refresh_token";
export const BASE_URL = "https://shop-api.dev.danakcorp.com";
// export const BASE_URL = "https://api-sondos.run.danakcorp.com";
// export const BASE_URL = "https://api.shinan.ir";
export const PRIMARY_COLOR = "#015699";
+1 -1
View File
@@ -38,7 +38,7 @@ export const getToken = async () => {
return localStorage.getItem(TOKEN_NAME);
};
export const getRefreshToken = () => {
export const getRefreshToken = async () => {
if (typeof window === "undefined") {
return null;
}