feat(frontend): Callback-Redirect, User-Info-Cookies und Landing-Page aktualisieren #68
Labels
No labels
component/backend
component/docs
component/e2e
component/frontend
component/infra
component/keycloak
prio/high
prio/low
prio/medium
type/bug
type/chore
type/feature
type/refactor
type/test
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
WompSchmiede/FamilienFeierPlaner#68
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Beschreibung
Nach dem Login m?ssen User auf die neue /app/dashboard-Route weitergeleitet werden. Zudem wird der User-Name beim Login aus dem JWT extrahiert und in Cookies gespeichert, damit die Sidebar (Issue #66) ihn anzeigen kann. Das alte /dashboard wird entfernt.
Aenderungen
Callback (+server.ts)
s const payload = JSON.parse(atob(tokens.access_token.split('.')[1])); event.cookies.set('user_name', payload.name || payload.preferred_username || 'User', { ... }); event.cookies.set('user_email', payload.email || '', { ... });Logout (+server.ts)
Landing Page (+page.svelte)
Altes /dashboard entfernen
Tests anpassen
Dateien
Akzeptanzkriterien
Aktualisierter Plan (2026-06-21)
Zusaetzlich: personId-Mapping
hooks.server.ts setzt aktuell payload.sub (Keycloak-User-UUID) als personId.
Benotigt wird die Personen-UUID. Keycloak-Provisionierung setzt username = person.id,
das landet im JWT als preferred_username. Fix: payload.sub ? payload.preferred_username || payload.sub.
Altes Dashboard sofort loschen
Das /dashboard/-Verzeichnis wird in 4a komplett geloscht (KEIN Redirect).
Callback redirectet dann auf /app/dashboard.
Commits
4a eat(frontend): Callback setzt User-Info-Cookies, personId-Mapping, altes Dashboard entfernt (refs #68)
4b est(frontend): Tests fuer Callback-Redirect, Cookies und personId-Mapping (closes #68)