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