feat: integrate Resend for OTP email delivery and update configuration

This commit is contained in:
gabdevele
2026-06-18 02:36:53 +02:00 Unverified
parent 07a660dc72
commit edadc258db
12 changed files with 91 additions and 109 deletions
+1 -1
View File
@@ -32,7 +32,7 @@ Authorization: Bearer <token>
- `POST /auth/register`
citizen registration without password
- `POST /auth/otp/request`
sends OTP through Mailpit
queues OTP email through configured mail provider
- `POST /auth/otp/verify`
consumes OTP, returns bearer token
- `POST /auth/cie/start`
+1 -1
View File
@@ -24,7 +24,7 @@ generate public read-only intervention links.
## Runtime Model
- Auth uses bearer tokens from `api_tokens`.
- OTP login uses `otp_challenges` and Mailpit in local dev.
- OTP login uses `otp_challenges` and async email delivery through configured mail provider.
- CIE login uses external Django RP service:
- Visione creates local `state`
- Django RP completes CIE/OIDC and sends signed identity payload to Visione
+1 -1
View File
@@ -30,7 +30,7 @@ public revocable link generated by operator/admin.
## Current Auth Model
- Registration creates `citizen`.
- Login path:
- OTP email via Mailpit
- OTP email via configured mail provider
- CIE via external `spid-cie-oidc-django` relying party service
- Auth token: bearer token from `api_tokens`
- Banned users cannot authenticate.
+1 -1
View File
@@ -2582,7 +2582,7 @@
},
"/api/v1/auth/otp/request": {
"post": {
"description": "Sends a one-time code by email through Mailpit locally.",
"description": "Queues a one-time code by email through configured mail provider.",
"operationId": "AuthController.requestOtp",
"parameters": [ ],
"requestBody": {