Scrum4Me/lib/session.ts
Scrum4Me Agent 8af5354f22 feat(ST-nma6ylbl): SessionData isAdmin + loginAction admin-redirect + must_reset_password-interceptie
- SessionData: isAdmin: boolean toegevoegd (na isDemo)
- loginAction: UserRole-query voor ADMIN, session.isAdmin gezet, redirect-volgorde:
  must_reset_password → /reset-password, adminRole → /admin, phone-UA, dashboard
- registerAction: session.isAdmin = false
- pair/claim route: session.isAdmin = false (QR-pairing is geen admin-flow)
2026-05-05 14:22:04 +02:00

21 lines
608 B
TypeScript

import { SessionOptions } from 'iron-session'
export interface SessionData {
userId: string
isDemo: boolean
isAdmin: boolean
// ST-1002 (M10) — gezet door /api/auth/pair/claim na een succesvolle QR-pairing.
// Beide velden zijn optioneel zodat bestaande wachtwoord-sessies onveranderd blijven.
paired?: boolean
pairedExpiresAt?: number // unix ms
}
export const sessionOptions: SessionOptions = {
password: process.env.SESSION_SECRET!,
cookieName: 'scrum4me-session',
cookieOptions: {
secure: process.env.NODE_ENV === 'production',
httpOnly: true,
sameSite: 'lax',
},
}