Improve authentication by extending timeouts and enhancing refresh handling
Extend loading timeout to 30s, remove onboarding progress from local storage clear, and remove invalid TOKEN_REFRESH_FAILED event handling. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 9203795e-937a-4306-b81d-b4d5c78c240e Replit-Commit-Checkpoint-Type: intermediate_checkpoint Replit-Commit-Event-Id: 7c308a4f-cdda-469f-b6dd-d39d0348d45c Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/7c94b7a0-29c7-4f2e-94ef-44b2153872b7/9203795e-937a-4306-b81d-b4d5c78c240e/saoW2ee Replit-Helium-Checkpoint-Created: true
This commit is contained in:
commit
56ff597623
1 changed files with 3 additions and 23 deletions
|
|
@ -170,17 +170,18 @@ export const AuthProvider: React.FC<{ children: React.ReactNode }> = ({
|
|||
let sessionRestored = false;
|
||||
|
||||
// Add timeout to ensure loading doesn't get stuck
|
||||
// Increased from 3s to 5s to allow more time for session restoration after OAuth
|
||||
// Increased to 30s to allow more time for session restoration on slow networks
|
||||
const loadingTimeout = setTimeout(() => {
|
||||
console.log("Auth loading timeout - forcing loading to false");
|
||||
if (!sessionRestored) {
|
||||
setLoading(false);
|
||||
}
|
||||
}, 5000);
|
||||
}, 30000);
|
||||
|
||||
if (!storageClearedRef.current && typeof window !== "undefined") {
|
||||
try {
|
||||
// ONLY clear mock/demo data, NOT actual Supabase auth session
|
||||
// NOTE: We no longer clear aethex_onboarding_progress_v1 here to preserve user progress
|
||||
[
|
||||
"mock_user",
|
||||
"mock_profile",
|
||||
|
|
@ -188,7 +189,6 @@ export const AuthProvider: React.FC<{ children: React.ReactNode }> = ({
|
|||
"demo_profiles",
|
||||
"demo_posts",
|
||||
"demo_seed_v1",
|
||||
"aethex_onboarding_progress_v1",
|
||||
].forEach((key) => window.localStorage.removeItem(key));
|
||||
|
||||
// NOTE: We deliberately DO NOT clear:
|
||||
|
|
@ -276,26 +276,6 @@ export const AuthProvider: React.FC<{ children: React.ReactNode }> = ({
|
|||
}, 50);
|
||||
}
|
||||
|
||||
// Handle token refresh failures specifically
|
||||
if (event === "TOKEN_REFRESH_FAILED") {
|
||||
console.warn("Token refresh failed - clearing local session");
|
||||
try {
|
||||
clearClientAuthState();
|
||||
} catch (e) {
|
||||
/* ignore */
|
||||
}
|
||||
try {
|
||||
aethexToast.error({
|
||||
title: "Session expired",
|
||||
description:
|
||||
"Your session could not be refreshed and has been cleared. Please sign in again.",
|
||||
});
|
||||
} catch (e) {
|
||||
/* ignore */
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
// Show toast notifications for auth events
|
||||
if (event === "SIGNED_IN") {
|
||||
aethexToast.success({
|
||||
|
|
|
|||
Loading…
Reference in a new issue