Refactor login flow to return redirect URL instead of direct navigation
Build And Push Image / docker (push) Successful in 2m43s Details

Move navigation responsibility from useAuth composable to login page
component for better separation of concerns and component control.
This commit is contained in:
Matt 2025-08-07 14:27:08 +02:00
parent af4fae6378
commit 789ecd7eab
2 changed files with 16 additions and 10 deletions

View File

@ -79,16 +79,19 @@ export const useAuth = () => {
if (sessionSuccess) { if (sessionSuccess) {
console.log('👤 User data retrieved from session:', user.value); console.log('👤 User data retrieved from session:', user.value);
// Redirect to dashboard or intended page // Return redirect URL for the component to handle
console.log('🔄 Redirecting to:', response.redirectTo || '/dashboard'); console.log('✅ Login successful, returning redirect URL:', response.redirectTo || '/dashboard');
await navigateTo(response.redirectTo || '/dashboard'); return {
success: true,
return { success: true }; redirectTo: response.redirectTo || '/dashboard'
};
} else { } else {
console.warn('❌ Failed to get user data from session after login'); console.warn('❌ Failed to get user data from session after login');
// Still redirect since login was successful on server // Still return success with redirect since login was successful on server
await navigateTo('/dashboard'); return {
return { success: true }; success: true,
redirectTo: '/dashboard'
};
} }
} }

View File

@ -185,10 +185,13 @@ const handleLogin = async () => {
rememberMe: credentials.value.rememberMe rememberMe: credentials.value.rememberMe
}); });
if (!result.success) { if (result.success) {
// Handle redirect from the component
console.log('🔄 Login successful, redirecting to:', result.redirectTo);
await navigateTo(result.redirectTo || '/dashboard');
} else {
loginError.value = result.error || 'Login failed. Please check your credentials and try again.'; loginError.value = result.error || 'Login failed. Please check your credentials and try again.';
} }
// If successful, the login method will handle the redirect
} catch (error: any) { } catch (error: any) {
console.error('Login error:', error); console.error('Login error:', error);
loginError.value = authError.value || 'Login failed. Please check your credentials and try again.'; loginError.value = authError.value || 'Login failed. Please check your credentials and try again.';