hide chat

This commit is contained in:
hamid zarghami
2025-10-12 15:49:24 +03:30
parent a11e6f97da
commit 4378f0e5ef
16 changed files with 1773 additions and 19 deletions
+44
View File
@@ -38,6 +38,50 @@ export const getToken = async () => {
return localStorage.getItem(TOKEN_NAME);
};
export const isAuthenticated = async (): Promise<boolean> => {
if (typeof window === "undefined") {
return false; // در سرور همیشه false
}
const token = localStorage.getItem(TOKEN_NAME);
const refreshToken = localStorage.getItem(REFRESH_TOKEN_NAME);
// اگر هیچ توکنی وجود ندارد
if (!token && !refreshToken) {
return false;
}
// اگر توکن وجود دارد، فرض می‌کنیم معتبر است (axios interceptor refresh را هندل می‌کند)
if (token) {
return true;
}
// اگر فقط refresh token وجود دارد، سعی می‌کنیم refresh کنیم
if (refreshToken) {
try {
const { refreshToken: refreshTokenAPI } = await import(
"../app/auth/service/Service"
);
const data = await refreshTokenAPI({ token: refreshToken });
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);
}
return true;
}
} catch (error) {
console.error("خطا در refresh token:", error);
// پاک کردن توکن‌های نامعتبر
await removeToken();
await removeRefreshToken();
}
}
return false;
};
export const getRefreshToken = async () => {
if (typeof window === "undefined") {
return null;