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

@@ -1,13 +1,20 @@
<script setup lang="ts">
// experimenta header with branding
// experimenta header with branding and user menu
const { loggedIn } = useAuth()
</script>
<template>
<header class="header-wrapper">
<div class="header-content">
<!-- Logo (left side) -->
<NuxtLink to="/" class="logo">
<img src="/img/experimenta-logo-white.svg" alt="experimenta Logo" class="logo-svg" />
</NuxtLink>
<!-- User Menu (right side, only when logged in) -->
<div v-if="loggedIn" class="user-menu">
<UserMenu />
</div>
</div>
</header>
</template>
@@ -26,7 +33,7 @@
margin: 0 auto;
padding: 0 20px;
display: flex;
justify-content: center;
justify-content: space-between;
align-items: center;
}
@@ -60,4 +67,9 @@
width: 200px;
}
}
.user-menu {
display: flex;
align-items: center;
}
</style>