Autentificare
Endpoint-uri de autentificare și acces API.
- Publice: magic link, Google OAuth, API key -> JWT exchange, înregistrare programatică
- Autentificate: management chei API (
/auth/api-keys*)
POST /auth/request
Solicita un email cu magic link.
curl -X POST https://api.paylinks.ro/api/v1/auth/request \
-H "Content-Type: application/json" \
-d '{"email": "[email protected]","redirectTo":"https://app.paylinks.ro/auth/callback"}'
Corpul cererii:
| Camp | Tip | Obligatoriu | Descriere |
|---|---|---|---|
email | string | Da | Adresa de email |
redirectTo | string (URL) | Nu | URL callback frontend (același origin) |
Raspuns (200):
{"ok": true}
GET /auth/verify
Verifica un token magic link si primeste un JWT.
curl "https://api.paylinks.ro/api/v1/auth/verify?token=abc123"
Parametri query:
| Parametru | Tip | Obligatoriu | Descriere |
|---|---|---|---|
token | string | Da | Token-ul magic link din email |
redirectTo | string (URL) | Nu | URL callback frontend (același origin) |
Raspuns (200):
{
"token": "eyJhbGciOiJIUzI1NiIs...",
"needsOnboarding": false
}
POST /auth/api/token
Schimbă credențialele API key pentru un JWT short-lived.
curl -X POST https://api.paylinks.ro/api/v1/auth/api/token \
-H "Content-Type: application/json" \
-d '{"keyId":"plk_xxx","keySecret":"pls_xxx"}'
Corpul cererii:
| Camp | Tip | Obligatoriu | Descriere |
|---|---|---|---|
keyId | string | Da | API key ID (plk_...) |
keySecret | string | Da | API key secret (pls_...) |
Raspuns (200):
{
"token": "eyJhbGciOiJIUzI1NiIs...",
"tokenType": "Bearer",
"expiresInSeconds": 3600,
"user": {
"id": "user_123",
"email": "[email protected]",
"role": "USER"
}
}
POST /auth/api/signup
Creează cont + prima cheie API într-un singur request (onboarding programatic).
curl -X POST https://api.paylinks.ro/api/v1/auth/api/signup \
-H "Content-Type: application/json" \
-d '{"email":"[email protected]","name":"Dev","keyName":"Primary integration"}'
Corpul cererii:
| Camp | Tip | Obligatoriu | Descriere |
|---|---|---|---|
email | string | Da | Email nou pentru cont |
name | string | Nu | Nume afișat |
keyName | string | Nu | Numele primei chei API |
Raspuns (201):
{
"user": {
"id": "user_123",
"email": "[email protected]"
},
"apiKey": {
"id": "key_123",
"name": "Primary integration",
"keyId": "plk_xxx"
},
"keySecret": "pls_xxx",
"token": "eyJhbGciOiJIUzI1NiIs...",
"tokenType": "Bearer",
"expiresInSeconds": 3600,
"needsOnboarding": true
}
GET /auth/api-keys
Listează cheile API pentru utilizatorul autentificat.
curl https://api.paylinks.ro/api/v1/auth/api-keys \
-H "Authorization: Bearer YOUR_JWT"
POST /auth/api-keys
Creează o cheie API nouă.
curl -X POST https://api.paylinks.ro/api/v1/auth/api-keys \
-H "Authorization: Bearer YOUR_JWT" \
-H "Content-Type: application/json" \
-d '{"name":"Zapier"}'
Răspunsul include keySecret o singură dată.
POST /auth/api-keys/:id/revoke
Revocă o cheie API.
curl -X POST https://api.paylinks.ro/api/v1/auth/api-keys/<id>/revoke \
-H "Authorization: Bearer YOUR_JWT"
GET /auth/google/start
Initiaza fluxul Google OAuth. Redirectioneaza catre ecranul de consimtamant Google.
curl -L "https://api.paylinks.ro/api/v1/auth/google/start?redirectTo=https://yourapp.com/callback"
Parametri query:
| Parametru | Tip | Obligatoriu | Descriere |
|---|---|---|---|
redirectTo | string | Nu | URL de redirectionare dupa autentificare |
Raspuns: 302 redirect catre Google.
GET /auth/google/callback
Callback Google OAuth. Apelat de Google dupa ce utilizatorul consimte.
Parametri query:
| Parametru | Tip | Obligatoriu | Descriere |
|---|---|---|---|
code | string | Da | Codul de autorizare OAuth |
state | string | Da | Parametrul state OAuth |
Raspuns (200):
{
"token": "eyJhbGciOiJIUzI1NiIs...",
"needsOnboarding": false,
"user": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"email": "[email protected]",
"role": "USER"
}
}
POST /auth/google/onetap
Autentificare prin Google One Tap.
curl -X POST https://api.paylinks.ro/api/v1/auth/google/onetap \
-H "Content-Type: application/json" \
-d '{"credential": "GOOGLE_JWT_CREDENTIAL"}'
Corpul cererii:
| Camp | Tip | Obligatoriu | Descriere |
|---|---|---|---|
credential | string | Da | JWT Google One Tap |
Raspuns (200):
{
"token": "eyJhbGciOiJIUzI1NiIs...",
"user": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"email": "[email protected]",
"role": "USER"
}
}