Changes backend in preparation for frontend work
This commit is contained in:
@@ -44,23 +44,20 @@ De API is daarna bereikbaar op `https://localhost:7221` (of de geconfigureerde p
|
||||
|
||||
## Initiële Setup (Bootstrapping)
|
||||
|
||||
Wanneer de applicatie voor de eerste keer wordt gestart met een lege database, moet er een "Owner" (eigenaar) worden aangemaakt. Dit kan via de setup endpoints.
|
||||
...
|
||||
|
||||
### 1. Status controleren
|
||||
Controleer of het systeem al geïnitialiseerd is:
|
||||
- **Endpoint**: `GET /api/v1/Setup/status`
|
||||
- **Response**: `{ "initialized": true/false }`
|
||||
## Authenticatie & Security (Unit 0)
|
||||
|
||||
### 2. Eerste Owner aanmaken
|
||||
Dit endpoint is alleen bruikbaar als er nog geen Owner in de database staat.
|
||||
- **Endpoint**: `POST /api/v1/Setup/owner`
|
||||
- **Payload**:
|
||||
```json
|
||||
{
|
||||
"email": "admin@example.com",
|
||||
"password": "JeWachtwoord123!"
|
||||
}
|
||||
```
|
||||
De API gebruikt een beveiligde flow voor authenticatie:
|
||||
- **Login**: `POST /api/v1/auth/login`. Retourneert een `accessToken` in de body en een `refreshToken` in een beveiligde `httpOnly` cookie.
|
||||
- **Refresh**: `POST /api/v1/auth/refresh`. Gebruikt de `refreshToken` cookie om een nieuwe `accessToken` en `refreshToken` (rotatie) te genereren.
|
||||
- **Revoke**: `POST /api/v1/auth/revoke`. Trekt het token in en wist de cookie.
|
||||
|
||||
### Belangrijke NFR Details:
|
||||
- **CORS**: Alleen toegestane origins uit `appsettings.json → Cors:AllowedOrigins` worden geaccepteerd. De frontend moet draaien op een van deze origins.
|
||||
- **Cookies**: De `refreshToken` cookie is `httpOnly`, `SameSite=Strict` en heeft het pad `/api/v1/auth`.
|
||||
- **Rate Limiting**: Login endpoints hebben rate limiting (Fixed window 5/min, Sliding window 20/min).
|
||||
- **Error Handling**: Foutmeldingen volgen de RFC 9457 `ProblemDetails` standaard.
|
||||
|
||||
## Database Migraties
|
||||
|
||||
|
||||
Reference in New Issue
Block a user