Modele Avansate de Autentificare — OAuth 2.0, JWT, Rotirea Cheilor

Stăpânește mecanisme sofisticate de autentificare pentru integrarea Smart Money API în medii enterprise. Învață fluxurile OAuth 2.0, modelele de token JWT, rotirea sigură a cheilor și implementarea autentificării multi-factor.

Publicat pe 21 martie 2026 18 min de citit Avansat

Prezentare generală a autentificării

Smart Money API acceptă multiple metode de autentificare concepute pentru a se adapta diferitelor arhitecturi de aplicații, cerințe de securitate și politici organizaționale. Înțelegerea acestor modele asigură că integrarea ta este atât sigură, cât și performantă.

Autentificarea în Smart Money API funcționează pe trei straturi principale:

  • Chei API — Autentificare simplă prin token bearer pentru dezvoltare și integrații directe
  • Token-uri JWT — Token-uri fără stare, semnate criptografic pentru sisteme distribuite și microservicii
  • OAuth 2.0 — Cadru de autorizare delegată pentru integrații terțe și aplicații SaaS

Principiu de Securitate: Nu expune niciodată datele de autentificare în codul client, jurnale, controlul versiunilor sau mesaje de eroare. Implementează rotirea credențialelor conform unui program și imediat după compromitere.

Fiecare metodă are avantaje distincte. Cheile API funcționează cel mai bine pentru comunicarea backend-to-backend unde stocarea credențialelor este controlată. Token-urile JWT excelă în arhitecturile distribuite unde nu există o stare partajată. OAuth 2.0 oferă acces delegat pentru aplicații terțe.

Autentificare prin Cheie API

Cheile API sunt cel mai simplu mecanism de autentificare — sunt șiruri aleatorii generate pentru contul tău care identifică aplicația ta în Smart Money API. Fiecare cerere trebuie să includă cheia ta API fie ca antet, fie ca parametru de interogare.

Cheie API bazată pe Antet

Abordarea recomandată este transmiterea cheii tale API în antetul Authorization folosind schema Bearer:

Exemplu curl
curl -X GET "https://api.smartmoneyapi.com/v1/whales/btc" \
-H "Authorization: Bearer sk_live_1234567890abcdef" \
-H "Accept: application/json"

Cheie API ca Parametru de Interogare

Pentru conexiuni WebSocket sau când antetele nu pot fi modificate, transmite cheia API ca parametru de interogare:

Conexiune WebSocket
ws://localhost:8877/ws?api_key=sk_live_1234567890abcdef
// Stabilește un flux WebSocket autentificat

Caracteristici ale Cheii API

Proprietate Descriere
Format Șir hex de 128 de caractere prefixat cu sk_test_ sau sk_live_
Domeniu de aplicare Moștenește toate permisiunile contului care l-a creat
Expirare Nu expiră automat; trebuie rotită manual
Rotire Generează o cheie nouă, migrează traficul, apoi dezactivează vechea cheie
Limite de Rată Împărtășite pentru toate cererile folosind aceeași cheie

Practici de Securitate pentru Cheile API

  • Variabile de Mediu — Stochează cheile în fișiere .env (necomise în controlul versiunilor) și încarcă-le la runtime
  • Sisteme de Seif — Folosește HashiCorp Vault, AWS Secrets Manager sau Azure Key Vault în producție
  • Chei Separate — Menține chei separate pentru test și producție; rotește cheile de test frecvent
  • Domeniu de aplicare minim — Creează chei separate pentru diferite integrații atunci când este posibil
  • Jurnalizare de Audit — Înregistrează toate evenimentele de creare și utilizare a cheilor API
Obține cheia ta API în 30 de secunde

Ești gata să construiești? Ia o cheie API gratuită (50 de apeluri/zi, fără card) și începe să extragi date live despre balene, finanțare și lanț.

Obține cheia ta API →

Modelul Token Bearer

Token-urile Bearer extind conceptul simplu al cheii API prin adăugarea de context, expirare și mecanisme de reîmprospătare. Sunt ideale pentru aplicațiile care au nevoie de gestionare programatică a credențialelor.

Obținerea Token-urilor Bearer

Schimbă cheia ta API și secretul pentru un token bearer valabil 24 de ore:

GET /auth/token
curl -X POST "https://api.smartmoneyapi.com/v1/auth/token" \
-H "Content-Type: application/json" \
-d '{
"api_key": "sk_live_1234567890",
"api_secret": "secret_abc123xyz"
}'

Formatul Răspunsului Token

Endpoint-ul returnează un token bearer cu metadate:

Răspuns
{
"access_token": "eyJhbGciOiJIUzI1NiIs...",
"token_type": "Bearer",
"expires_in": 86400,
"refresh_token": "refresh_1234567..."
}

Utilizarea Token-urilor Bearer

Include tokenul în antetul Authorization pentru toate cererile ulterioare:

Cerere Autentificată
curl -X GET "https://api.smartmoneyapi.com/v1/derivatives/funding-heatmap" \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."

Fluxul de Reîmprospătare a Token-ului

Când un token se apropie de expirare, folosește tokenul de reîmprospătare pentru a obține unul nou fără a necesita secretul API:

POST /auth/refresh
curl -X POST "https://api.smartmoneyapi.com/v1/auth/refresh" \
-H "Content-Type: application/json" \
-d '{
"refresh_token": "refresh_1234567..."
}'

Implementarea OAuth 2.0

OAuth 2.0 permite utilizatorilor să acorde aplicațiilor acces la conturile lor Smart Money API fără a împărtăși credențialele. Acest lucru este esențial pentru platformele SaaS, integrațiile terțe și aplicațiile multi-tenant.

Fluxul de Autorizare OAuth 2.0

Fluxul standard pentru aplicațiile web:

  1. Utilizatorul Inițiază Autentificarea — Utilizatorul apasă "Conectează-te cu Smart Money API"
  2. Redirecționare către Serverul de Autorizare — Aplicația ta redirecționează utilizatorul către endpointul de autorizare Smart Money
  3. Utilizatorul Acordă Permisiunea — Utilizatorul verifică domeniile de aplicare solicitate și acordă acces
  4. Codul de Autorizare este Returnat — Utilizatorul este redirecționat înapoi cu codul de autorizare
  5. Schimbă Codul pentru Token — Backend-ul schimbă codul pentru un token de acces (codul nu este expus niciodată în frontend)
  6. Stochează Tokenul — Stochează tokenul de reîmprospătare în siguranță; folosește tokenul de acces pentru apelurile API

Pasul 1: Redirecționează utilizatorul către punctul final de autorizare

Redirecționare frontend
// URL pentru redirecționarea utilizatorului
const authUrl = new URL('https://api.smartmoneyapi.com/oauth/authorize');
authUrl.searchParams.append('client_id', 'your_client_id');
authUrl.searchParams.append('redirect_uri', 'https://yourapp.com/callback');
authUrl.searchParams.append('response_type', 'code');
authUrl.searchParams.append('scope', 'whales derivatives onchain');
authUrl.searchParams.append('state', generateRandomState());
window.location.href = authUrl.toString();

Pasul 2: Gestionează callback-ul și schimbă codul

Schimb de cod backend
// Backend-ul gestionează ruta /callback
const code = req.query.code;
const storedState = req.session.state;
const receivedState = req.query.state;
// Verifică parametrul state
if (storedState !== receivedState) {
throw new Error('State mismatch - CSRF attack detected');
}
// Schimbă codul pentru token
const tokenResponse = await fetch('https://api.smartmoneyapi.com/oauth/token', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
grant_type: 'authorization_code',
code: code,
client_id: process.env.OAUTH_CLIENT_ID,
client_secret: process.env.OAUTH_CLIENT_SECRET,
redirect_uri: 'https://yourapp.com/callback'
})
});
const tokens = await tokenResponse.json();
// Stochează tokenii în siguranță

Domenii OAuth

Solicită doar domeniile de care aplicația ta are nevoie. Smart Money API definește următoarele domenii:

Domeniu Descriere
whales Acces la urmărirea portofelelor de balene și metrici de acumulare
derivatives Acces la date despre futures, perpetuale și rate de finanțare
onchain Acces la fluxuri de tranzacții on-chain și analize
alerts Creează și gestionează alerte prin webhook
offline Acces la tokeni de reîmprospătare pentru a obține noi tokeni de acces offline

Gestionarea tokenilor JWT

JWT (JSON Web Tokens) oferă autentificare fără stare—serverul nu are nevoie să stocheze date de sesiune. Smart Money API folosește RS256 (Semnătură RSA cu SHA-256) pentru semnarea tokenilor, permițând verificarea fără a contacta API-ul.

Structura JWT

Tokenii JWT constau din trei părți separate prin puncte:

Format JWT
eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IjEifQ.
eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkFjY3QxMjM0In0.
SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
// HEADER.PAYLOAD.SIGNATURE

Antet JWT

Antetul identifică algoritmul și tipul de token:

Antet decodat
{
"alg": "RS256",
"typ": "JWT",
"kid": "1"
}

Revendicări JWT Payload

Payload-ul conține revendicări (declarații despre utilizator/aplicație):

Payload decodat
{
"sub": "acct_1234567890",
"name": "Trading Bot",
"iat": 1703001600,
"exp": 1703088000,
"scopes": ["whales", "derivatives"],
"aud": "https://api.smartmoneyapi.com"
}

Verificarea semnăturilor JWT

Descarcă cheia publică Smart Money și verifică tokenii înainte de a-i accepta:

Verificare Node.js
const jwt = require('jsonwebtoken');
const fs = require('fs');
// Obține cheia publică de la Smart Money API
const publicKey = fs.readFileSync('smartmoney-public.pem');
// Verifică tokenul
try {
const decoded = jwt.verify(token, publicKey, {
algorithms: ['RS256'],
audience: 'https://api.smartmoneyapi.com',
issuer: 'https://api.smartmoneyapi.com'
});
// Tokenul este valid, folosește revendicările decodate
} catch (err) {
// Token invalid sau expirat
}

Strategie de rotație a cheilor

Rotația regulată a cheilor este esențială pentru menținerea securității. Chiar și cu practici de securitate perfecte, presupune că cheile pot fi compromise și implementează rotația sistematică.

Frecvența de rotație

Smart Money recomandă programe diferite de rotație în funcție de tipul de cheie și utilizare:

Tip cheie Rotație recomandată Rotație minimă
Chei API de test Lunar Trimestrial
Chei API de producție Trimestrial Anual
Tokeni de reîmprospătare OAuth Automat (după 90 de zile) Manual (după 180 de zile)
Chei de cont de serviciu Semestrial Anual

Proces de rotație fără întrerupere

Rotește cheile fără a întrerupe serviciul:

  1. Generează cheie nouă — Creează o nouă cheie API prin panoul de control sau API
  2. Implementează cheie nouă — Actualizează secretele aplicației în staging, testează amănunțit
  3. Implementare graduală — Implementează pe 10% din servere, monitorizează erorile
  4. Implementare Completă — Implementare pe serverele rămase
  5. Verifică Traficul — Confirmă că toate cererile folosesc noua cheie
  6. Dezactivează Cheia Veche — Marchează cheia veche ca inactivă, dar nu o șterge imediat
  7. Șterge Cheia Veche — După 48 de ore fără erori, șterge definitiv

Rotație de Urgență a Cheilor

Dacă suspectezi că o cheie a fost compromisă:

Rotație de Urgență
// Acțiune imediată: Dezactivează cheia compromisă
curl -X POST "https://api.smartmoneyapi.com/v1/keys/sk_live_xxx/revoke" \
-H "Authorization: Bearer token"
// Generează cheia de înlocuire imediat
curl -X POST "https://api.smartmoneyapi.com/v1/keys" \
-H "Content-Type: application/json" \
-d '{
"name": "Cheie de Înlocuire de Urgență"
}'

Rotație Automată în Kubernetes

Folosește Kubernetes Secrets și operatori pentru rotație automată:

CronJob pentru Rotația Cheilor
apiVersion: batch/v1
kind: CronJob
metadata:
name: api-key-rotator
spec:
schedule: "0 0 * * 0" # Săptămânal, duminică
jobTemplate:
spec:
template:
spec:
containers:
- name: rotator
image: smartmoney-key-rotator:latest

Autentificare Multi-Factor (MFA)

Pentru conturile care accesează date de producție, MFA oferă un nivel suplimentar de securitate prin cererea unui al doilea factor, pe lângă credențiale.

Metode MFA Acceptate

  • TOTP (Parolă Unică pe Bază de Timp) — Aplicații precum Google Authenticator, Authy
  • WebAuthn/FIDO2 — Chei de securitate hardware, biometrie
  • Coduri Unice prin SMS — Mai puțin sigure, dar acceptate universal
  • Confirmare prin Email — Coduri trimise pe emailul înregistrat

Activarea TOTP pentru Acces la Cont

Activează MFA
// Pasul 1: Cere configurarea MFA
curl -X POST "https://api.smartmoneyapi.com/v1/account/mfa/enable" \
-H "Authorization: Bearer token"
// Răspunsul include URL pentru cod QR
{
"qr_code_url": "https://...",
"secret": "JBSWY3DPEBLW64TMMQ...",
"backup_codes": ["12345678", ...]
}

MFA în Timpul Operațiunilor API

Unele operațiuni pot necesita confirmare MFA chiar și după autentificare:

Provocare MFA
// Încercare de operațiune sensibilă (rotație chei)
curl -X POST "https://api.smartmoneyapi.com/v1/keys/rotate" \
-H "Authorization: Bearer token" \
-H "X-MFA-Token: mfa_challenge_abc123"
// Răspuns: MFA necesar
{
"error": "mfa_required",
"mfa_token": "mfa_xyz789"
}
// Reîncearcă cu cod TOTP
curl -X POST "https://api.smartmoneyapi.com/v1/keys/rotate" \
-H "Authorization: Bearer token" \
-H "X-MFA-Code: 123456"

Bune Practici de Securitate

Autentificarea este la fel de puternică ca implementarea ei. Urmează aceste practici pentru menținerea securității:

Gestionarea Secretelor

  • Nu comite niciodată secrete în sistemul de control al versiunilor — Folosește fișiere .env cu .gitignore
  • Folosește variabile de mediu — Încarcă din sisteme sigure de gestionare a secretelor
  • Scanează depozitele — Folosește unelte precum TruffleHog, detect-secrets pentru a găsi chei expuse
  • Auditează jurnalele de acces — Monitorizează cine a accesat secretele și când

Securitate în Transport

  • Folosește întotdeauna HTTPS — Nu trimite credențiale pe conexiuni necriptate
  • Verifică certificatele SSL — Nu dezactiva validarea certificatelor în producție
  • Folosește fixarea certificatelor — Pentru aplicații mobile, previne atacurile MITM
  • Impune TLS 1.2+ — Dezactivează protocoalele vechi

Gestionarea Credențialelor

  • Hashează secretele — Stochează hash-uri bcrypt sau Argon2, niciodată în clar
  • Minimizează durata de viață — Păstrează credențialele în memorie doar cât este necesar
  • Șterge datele sensibile — Suprascrie explicit credențialele după utilizare
  • Folosește biblioteci sigure — Nu implementa criptografia singur

Înregistrare și Monitorizare

  • Nu înregistra niciodată credențiale — Redactează cheile în jurnale, folosește mascare
  • Înregistrează evenimente de autentificare — Urmărește încercările de autentificare reușite și eșuate
  • Monitorizează anomalii — Alertează la modele de acces neobișnuite
  • Auditează utilizarea cheilor — Urmărește ce chei au accesat ce date

Modele de Autentificare pentru Enterprise

Organizațiile mari necesită adesea controale de securitate suplimentare și capabilități de conformitate.

Integrare SAML 2.0

Pentru clienții enterprise, Smart Money API acceptă integrarea SAML 2.0 cu furnizorul de identitate al organizației tale (Okta, Azure AD, etc.):

  • Single Sign-On (SSO) — Utilizatorii se autentifică prin IdP-ul corporativ
  • Provizionare automată — Creează/dezactivează conturi în funcție de apartenența la grup
  • Impunere — Cere SAML pentru toate accesurile utilizatorilor

Listă Albă de IP-uri

Restricționați accesul API la anumite adrese IP sau intervale CIDR:

Gestionarea Listei Albe de IP-uri
// Adăugați IP în lista albă
curl -X POST "https://api.smartmoneyapi.com/v1/account/ip-whitelist" \
-H "Authorization: Bearer token" \
-d '{
"cidr": "203.0.113.0/24",
"description": "Servere de producție"
}'

Jurnal de audit și conformitate

Planurile Enterprise includ jurnale de audit cuprinzătoare pentru conformitate:

Eveniment Date înregistrate
Autentificare Utilizator, marcaj temporal, succes/eșec, IP, stare MFA
Operațiuni cu chei ID cheie, acțiune, inițiator, marcaj temporal
Modificări de cont Ce s-a schimbat, cine a schimbat, marcaj temporal, valori înainte/după
Acces la date Utilizator, endpoint, domenii de aplicare, marcaj temporal, număr de înregistrări

Depanarea problemelor de autentificare

Eroare de cheie API invalidă

Problemă: Primiți "401 Neautorizat - Cheie API invalidă"

Soluții:

  • Verificați formatul cheii (ar trebui să înceapă cu sk_test_ sau sk_live_)
  • Verificați dacă există spații la început sau sfârșit în cheie
  • Confirmați că cheia nu a fost dezactivată sau rotită
  • Verificați dacă utilizați mediul corect (cheie de test pentru test, cheie live pentru producție)
  • Verificați dacă permisiunile cheii API se potrivesc cu cerințele endpoint-ului

Eroare de token expirat

Problemă: Token Bearer expirat, solicitări eșuate

Soluții:

  • Utilizați tokenul de reîmprospătare pentru a obține un nou token de acces
  • Implementați reîmprospătarea automată a tokenului cu 5 minute înainte de expirare
  • Stocați tokenul de reîmprospătare în siguranță (nu în localStorage pentru SPA-uri)
  • Gestionați răspunsurile 401 prin încercarea fluxului de reîmprospătare a tokenului

Erori CORS/Preflight

Problemă: Browserul blochează solicitările cu eroare CORS

Soluții:

  • Apelurile API din browsere trebuie să vină de la origini permise
  • Adăugați domeniul dvs. prin panoul de control: Setări → Origini CORS
  • Browserul trimite automat o solicitare OPTIONS preflight
  • Pentru dezvoltare, utilizați localhost:3000 sau similar

Provocarea MFA nu se finalizează

Problemă: Operațiunile care necesită MFA eșuează chiar și cu codul corect

Soluții:

  • Asigurați-vă că ceasul serverului este sincronizat (TOTP se bazează pe timp)
  • Codul este valabil doar pentru 30 de secunde, generați unul nou
  • Utilizați coduri de rezervă dacă aplicația de autentificare nu este disponibilă
  • Recuperarea contului este disponibilă prin e-mailul înregistrat

Implementați autentificare securizată astăzi

Smart Money API suportă autentificare de nivel enterprise cu OAuth 2.0, JWT, MFA și integrare SAML. Securizați integrarea API cu cele mai bune practici din industrie.

Vizualizați planurile Enterprise
Aveți nevoie de SAML, listă albă de IP-uri sau suport dedicat? Contactați echipa noastră de vânzări.

Resurse conexe

Începeți gratuit — 50 de apeluri/zi, fără card

Obțineți fluxul live al balenelor, finanțare, interes deschis și date on-chain de la 3 exchange-uri dintr-un singur API. Nivel gratuit, fără card de credit, puteți face upgrade oricând.

Începeți gratuit →
Încercați consola live API → (nu este necesar cont)