Gebruikers- & sessiebeheer: registratie, actieve-sessie-overzicht & force-logout #52
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "claude/lucid-bell-88117e"
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?
Gebruikers- & sessiebeheer
Voegt gebruikers- en sessiebeheer toe (Story ST-014, PBI-10, sprint
S-2026-06-18-1).Wat
/users/new) — achter login; elke ingelogde gebruiker maakt accounts aan (geen rollen)./users) — overzicht van actieve sessies (gebruikersnaam, inlog-tijdstip, laatste activiteit, apparaat/IP) met per sessie beëindigen (geforceerd uitloggen); eigen sessie beëindigen = direct uitloggen./settings(non-goal).Hoe
Session-model + migratie; iron-session krijgt eensessionIdin de cookie (server-side sessie-tracking, want iron-session was stateless).(app)-layout blijft read-only (Server Components mogen in Next 16 geen cookies schrijven).SessionHeartbeat→heartbeatAction) houdtlast_seen_atvers, dwingt force-logout af (≤60s) en upgradet legacy-cookies zonder geforceerde re-login.requireSession()), onafhankelijk van de proxy.'use server'-wrapper-splitsing (*-core.ts+*.ts), conformimmich-people.Verificatie
npm run buildgroen (TypeScript + ESLint schoon).npm test: ~40 nieuwe unit-tests groen (sessions, auth, heartbeat, users, MainNav) via DI-fakes. (De resterende suite-failures zijn pre-existingDATABASE_URL-tests die in CI/dev mét DB draaien.)prisma migrate diffexact overeenkomt met de gecommittemigration.sql.Deploy / opvolging
migrate-service (prisma migrate deploy).proxy.tsmet CSRF/CSP vssrc/proxy.tsmet alleenuserId-check) — consolideren naar één. Deze feature is daar bewust onafhankelijk van gemaakt.Spec:
docs/superpowers/specs/2026-06-18-user-session-management-design.md🤖 Generated with Claude Code