Skip to main content

Fluxuri de autentificare


Email + Parolă

POST /auth/sign_up  →  User + Profile create
→ JWT access_token (15 min) + refresh_token (30 zile)

POST /auth/sign_in → verificare parolă bcrypt
→ JWT access_token + refresh_token

POST /auth/refresh → refresh_token → pereche nouă de token-uri

Google OAuth (implementat)

Aplicație mobilă

├─ 1. Google Sign-In SDK → id_token

└─ 2. POST /api/v1/auth/oauth/google { id_token }

├─ Cerere la Google tokeninfo pentru verificare
├─ Extragere: sub, email, given_name, family_name

├─ Căutare OAuthIdentity (provider=google, uid=sub)
│ ├─ Găsit → autentificare
│ └─ Negăsit:
│ ├─ User cu acel email există → asociere
│ └─ Nu → creare User + Profile

└─ Emitere JWT access_token + refresh_token
201 Created — utilizator nou
200 OK — utilizator existent

Structura JWT

Payload access token:

{
"user_id": "uuid",
"type": "access",
"exp": 1234567890
}

Payload refresh token:

{
"user_id": "uuid",
"type": "refresh",
"exp": 1234567890
}

Algoritm: HS256, cheie din SECRET_KEY_BASE.


Planificat

MetodăStatus
Phone + OTPPlanificat
Apple Sign-InPlanificat
Facebook LoginPlanificat
Password ResetPlanificat
Email VerificationPlanificat

Erori de token

SituațieHTTPMesaj
Token expirat401Token expired
Token invalid401Invalid token
Antet lipsă401Invalid token