Implement Password Grant Flow for Authentication and Enhance User Experience

- Introduced Password Grant Flow for user authentication, allowing direct login with email and password.
- Updated `useAuth` composable to manage login and logout processes, including Single Sign-Out from Cidaas.
- Enhanced user interface with a new `UserMenu` component displaying user information and logout functionality.
- Updated homepage to show personalized greetings for logged-in users and a login prompt for guests.
- Added logout confirmation page with a countdown redirect to the homepage.
- Documented the implementation details and future enhancements for OAuth2 flows in CLAUDE.md and other relevant documentation.
- Added test credentials and guidelines for automated testing in the new TESTING.md file.
This commit is contained in:
Bastian Masanek
2025-11-01 15:23:08 +01:00
parent 83ba708023
commit cc35636d1a
40 changed files with 1843 additions and 31 deletions

View File

@@ -69,16 +69,24 @@ export function useAuth() {
/**
* Logout
* Clears session and redirects to homepage
* Performs Single Sign-Out at Cidaas and clears local session
* Redirects to logout confirmation page
*/
async function logout() {
try {
// Call logout endpoint (performs Cidaas SSO + clears session)
await $fetch('/api/auth/logout', { method: 'POST' })
await clear() // Clear client-side state
navigateTo('/') // Redirect to homepage
// Clear client-side state
await clear()
// Redirect to logout confirmation page (with auto-redirect to homepage)
navigateTo('/logout')
} catch (error) {
console.error('Logout failed:', error)
throw error
// Even on error, clear local state and redirect
await clear()
navigateTo('/logout')
}
}