fix: resolve Telegram Mini App auth failures on all platforms

- Skip token refresh/Bearer header for auth endpoints in request interceptor
- Wait for auth store initialization before attempting Telegram login
- Clear stale session tokens when init data changes (WebView persistence)
- Show backend error details instead of generic messages
This commit is contained in:
c0mrade
2026-02-06 23:14:08 +03:00
parent a1c0ceba19
commit 7df751ea35
4 changed files with 87 additions and 23 deletions

View File

@@ -152,6 +152,25 @@ export const tokenStorage = {
},
};
export function clearStaleSessionIfNeeded(freshInitData: string | null): void {
if (!freshInitData) return;
try {
const stored = sessionStorage.getItem(TOKEN_KEYS.TELEGRAM_INIT);
if (stored && stored !== freshInitData) {
sessionStorage.removeItem(TOKEN_KEYS.ACCESS);
sessionStorage.removeItem(TOKEN_KEYS.REFRESH);
sessionStorage.removeItem(TOKEN_KEYS.USER);
}
sessionStorage.setItem(TOKEN_KEYS.TELEGRAM_INIT, freshInitData);
localStorage.removeItem(TOKEN_KEYS.TELEGRAM_INIT);
} catch {
// Storage недоступен
}
}
/**
* Централизованный менеджер обновления токенов
* Предотвращает множественные параллельные refresh запросы