mirror of
https://github.com/chillpadclub/bedolaga-cabinet.git
synced 2026-07-28 09:33:46 +00:00
fix: clear all cached auth state on Telegram MiniApp retry
When users hit 'Try Again' after auth failure, clear ALL cached state (tokens, SDK launch params, initData, zustand persist, tg_user_id) to prevent stale token loops. Applies to both Login and TelegramRedirect retry handlers.
This commit is contained in:
@@ -15,7 +15,7 @@ import {
|
||||
type BrandingInfo,
|
||||
type EmailAuthEnabled,
|
||||
} from '../api/branding';
|
||||
import { getAndClearReturnUrl } from '../utils/token';
|
||||
import { getAndClearReturnUrl, tokenStorage } from '../utils/token';
|
||||
import { isInTelegramWebApp, getTelegramInitData, useTelegramSDK } from '../hooks/useTelegramSDK';
|
||||
import { closeMiniApp } from '@telegram-apps/sdk-react';
|
||||
import LanguageSwitcher from '../components/LanguageSwitcher';
|
||||
@@ -205,11 +205,18 @@ export default function Login() {
|
||||
}, [isAuthInitializing, loginWithTelegram, navigate, t, getReturnUrl]);
|
||||
|
||||
const handleRetryTelegramAuth = () => {
|
||||
// Clear ALL cached auth state to prevent stale token/initData loops
|
||||
tokenStorage.clearTokens();
|
||||
sessionStorage.removeItem('tapps/launchParams');
|
||||
sessionStorage.removeItem('telegram_init_data');
|
||||
localStorage.removeItem('cabinet-auth');
|
||||
localStorage.removeItem('tg_user_id');
|
||||
|
||||
try {
|
||||
sessionStorage.removeItem('tapps/launchParams');
|
||||
sessionStorage.removeItem('telegram_init_data');
|
||||
// Close miniapp — Telegram will provide fresh initData on reopen
|
||||
closeMiniApp();
|
||||
} catch {
|
||||
// If closeMiniApp fails, force a clean page reload
|
||||
window.location.reload();
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user