Documentația API
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:
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:
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:
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:
{
"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:
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:
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:
- Utilizatorul Inițiază Autentificarea — Utilizatorul apasă "Conectează-te cu Smart Money API"
- Redirecționare către Serverul de Autorizare — Aplicația ta redirecționează utilizatorul către endpointul de autorizare Smart Money
- Utilizatorul Acordă Permisiunea — Utilizatorul verifică domeniile de aplicare solicitate și acordă acces
- Codul de Autorizare este Returnat — Utilizatorul este redirecționat înapoi cu codul de autorizare
- Schimbă Codul pentru Token — Backend-ul schimbă codul pentru un token de acces (codul nu este expus niciodată în frontend)
- 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
// 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
// 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:
eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IjEifQ.
eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkFjY3QxMjM0In0.
SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
// HEADER.PAYLOAD.SIGNATURE
Antet JWT
Antetul identifică algoritmul și tipul de token:
{
"alg": "RS256",
"typ": "JWT",
"kid": "1"
}
Revendicări JWT Payload
Payload-ul conține revendicări (declarații despre utilizator/aplicație):
{
"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:
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:
- Generează cheie nouă — Creează o nouă cheie API prin panoul de control sau API
- Implementează cheie nouă — Actualizează secretele aplicației în staging, testează amănunțit
- Implementare graduală — Implementează pe 10% din servere, monitorizează erorile
- Implementare Completă — Implementare pe serverele rămase
- Verifică Traficul — Confirmă că toate cererile folosesc noua cheie
- Dezactivează Cheia Veche — Marchează cheia veche ca inactivă, dar nu o șterge imediat
- Ș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ă:
// 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ă:
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
// 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:
// Î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:
// 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.