forked from cartsnitch/cartsnitch
fix: resolve sign-in redirect race condition in Login.tsx
Use window.location.href = '/' instead of React Router navigate() after successful sign-in. Better-Auth's useSession() hasn't updated its internal cache when navigate() fires, causing ProtectedRoute to see a null session and redirect back to /login. A full page reload reinitializes useSession() with fresh cookie-backed session state. Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
+4
-3
@@ -31,11 +31,12 @@ export function Login() {
|
||||
throw new Error(authError.message ?? 'Sign in failed')
|
||||
}
|
||||
|
||||
// After successful signIn, force a session fetch to confirm the cookie is set
|
||||
// before navigating to the protected route
|
||||
// After successful signIn, force a full page reload so Better-Auth's
|
||||
// useSession() reinitializes with fresh cookie-backed session state.
|
||||
// Using React Router's navigate() races with Better-Auth's internal update.
|
||||
const sessionResult = await authClient.getSession()
|
||||
if (sessionResult.data) {
|
||||
navigate('/')
|
||||
window.location.href = '/'
|
||||
} else {
|
||||
setError('Sign in failed. Please try again.')
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user