From e1e1b7ab216a4163de7e466c2b01632bfe649163 Mon Sep 17 00:00:00 2001 From: neodk2004 Date: Thu, 1 Jan 2026 14:12:49 +0100 Subject: [PATCH] Fundament: Zentrale Auth-Leitlinie & RequestUser vereinheitlicht (#241) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Guard-first Auth-Architektur dokumentiert - RequestUser als einzige User-Wahrheit etabliert - Keine Auth-Logik in Services - Public-Routen explizit via @Public() - Vorbereitung für JWT ohne Service-Änderungen --- frontend/README.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/frontend/README.md b/frontend/README.md index e215bc4..659f484 100644 --- a/frontend/README.md +++ b/frontend/README.md @@ -34,3 +34,25 @@ You can check out [the Next.js GitHub repository](https://github.com/vercel/next The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js. Check out our [Next.js deployment documentation](https://nextjs.org/docs/app/building-your-application/deploying) for more details. +## Auth-Architektur (Grundlagen) + +### Prinzipien +- Guard-first Architektur +- Keine Auth-Logik in Services +- Controller bleiben dünn +- Zentrale User-Wahrheit über Request-Kontext + +### RequestUser +- `req.user` ist der einzige User-Kontext im Request +- Typ: `RequestUser` +- ID ist **number** (DB-kompatibel) +- Kann `null` sein (Public Routes) + +```ts +export type UserRole = 'USER' | 'ADMIN' | 'MOD'; + +export type RequestUser = { + id: number; + role: UserRole; + isFake?: boolean; +} | null;