API Admin & Utenti
Tutti gli endpoint in questa pagina richiedono privilegi amministrativi, solitamente gestiti tramite l’autorizzazione JWT del Service Role Key o permessi specifici in Supabase.
Gestione Operatori
POST /api/operators
Crea un nuovo operatore nel sistema auth di Supabase.
- Body:
{
"email": "nuovo@carrubo.it",
"password": "PasswordSicura123!",
"name": "Luigi",
"surname": "Verdi"
}
- Risposta: Oggetto User di Supabase Auth.
GET /api/operators
Restituisce la lista di tutti gli operatori (filtrando gli utenti di tipo admin/operator).
- Risposta: Array di oggetti utente.
POST /api/operators/pfp
Imposta l’immagine del profilo per un operatore.
- Form-Data:
file(l’immagine) euserId.
Accesso ed Email
GET /api/users
Estrae tutti gli utenti registrati con i relativi metadati custom.
- Risposta (200 OK):
[
{
"id": "uuid",
"email": "mario@example.com",
"user_metadata": { "name": "Mario" },
"created_at": "2024-01-01T00:00:00Z"
}
]
POST /api/send-email
Invia un’email transazionale tramite l’SMTP configurato in .env.
- Body:
{
"recipients": ["mario@example.com"],
"subject": "Benvenuto a Il Carrubo",
"body": "<h1>Ciao!</h1><p>Ti aspettiamo.</p>"
}
Sicurezza e Sessioni
POST /api/admin/grant-cookie
Rilascia un cookie HttpOnly che sblocca l’accesso alla rotta protetta /ad/* (Admin Dashboard).
- Header Risposta:
Set-Cookie: il_carrubo_admin_access=granted; Path=/ad/
GET /api/sessions
Elenca tutte le sessioni attive correnti per l’utente loggato (Multi-device).
- Risposta: Array di sessioni.
POST /api/sessions/revoke-all
Invalida forzatamente tutte le sessioni attive dell’utente in ogni dispositivo (Global Logout).
POST /api/auth/unlink
Scollega un provider OAuth (es. Google, GitHub) dall’account dell’utente corrente.
- Body:
{ "provider": "google" }