API Documentatie
Geavanceerde Authenticatiepatronen — OAuth 2.0, JWT, Sleutelrotatie
Beheers geavanceerde authenticatiemechanismen voor het integreren van Smart Money API in enterprise omgevingen. Leer OAuth 2.0 flows, JWT token patronen, veilige sleutelrotatie en implementatie van multi-factor authenticatie.
Gepubliceerd op 21 maart 2026
•
18 minuten leestijd
•
Geavanceerd
Authenticatie Overzicht
De Smart Money API ondersteunt meerdere authenticatiemethoden die zijn ontworpen om verschillende applicatiearchitecturen, beveiligingsvereisten en organisatiebeleid te accommoderen. Het begrijpen van deze patronen zorgt ervoor dat je integratie zowel veilig als performant is.
Authenticatie in de Smart Money API werkt op drie primaire lagen:
- API-sleutels — Eenvoudige bearer token authenticatie voor ontwikkeling en eenvoudige integraties
- JWT Tokens — Stateless, cryptografisch ondertekende tokens voor gedistribueerde systemen en microservices
- OAuth 2.0 — Gedelegeerd autorisatieframework voor third-party integraties en SaaS-applicaties
Beveiligingsprincipe: Laat nooit authenticatiegegevens blootstellen in client-side code, logs, versiebeheer of foutmeldingen. Implementeer credential rotatie volgens een schema en direct bij compromittering.
Elke methode heeft duidelijke voordelen. API-sleutels werken het beste voor backend-to-backend communicatie waar credential opslag wordt gecontroleerd. JWT tokens excelleren in gedistribueerde architecturen waar geen gedeelde staat beschikbaar is. OAuth 2.0 biedt gebruiker-gedelegeerde toegang voor third-party applicaties.
API-sleutelauthenticatie
API-sleutels zijn het eenvoudigste authenticatiemechanisme—het zijn willekeurige strings gegenereerd voor je account die je applicatie identificeren bij de Smart Money API. Elke aanvraag moet je API-sleutel bevatten, ofwel als header of query parameter.
Header-Based API-sleutel
De aanbevolen aanpak is het doorgeven van je API-sleutel in de Authorization header met behulp van het Bearer schema:
curl -X GET "https://api.smartmoneyapi.com/v1/whales/btc" \
-H "Authorization: Bearer sk_live_1234567890abcdef" \
-H "Accept: application/json"
Query Parameter API-sleutel
Voor WebSocket verbindingen of wanneer headers niet kunnen worden aangepast, geef de API-sleutel door als query parameter:
ws://localhost:8877/ws?api_key=sk_live_1234567890abcdef
// Stelt een geauthenticeerde WebSocket stream in
API-sleutel Eigenschappen
| Eigenschap |
Beschrijving |
| Formaat |
128-karakter hex string geprefixeerd met sk_test_ of sk_live_ |
| Scope |
Erft alle permissies van het account dat het heeft aangemaakt |
| Vervaldatum |
Verloopt nooit automatisch; moet handmatig worden geroteerd |
| Rotatie |
Genereer een nieuwe sleutel, migreer verkeer, en deactiveer de oude sleutel |
| Rate Limieten |
Gedeeld over alle aanvragen die dezelfde sleutel gebruiken |
API-sleutel Beveiligingspraktijken
- Omgevingsvariabelen — Sla sleutels op in .env bestanden (niet gecommit naar versiebeheer) en laad ze tijdens runtime
- Vault Systemen — Gebruik HashiCorp Vault, AWS Secrets Manager, of Azure Key Vault in productie
- Gescheiden Sleutels — Houd aparte test- en live-sleutels aan; roteer test-sleutels frequent
- Minimale Scope — Maak aparte sleutels voor verschillende integraties waar mogelijk
- Audit Logging — Log alle API-sleutel creatie en gebruik gebeurtenissen
Krijg je API-sleutel in 30 seconden
Klaar om te bouwen? Pak een gratis API-sleutel (200 calls/dag, geen kaart) en begin met het ophalen van live whale, funding en on-chain data.
Krijg je API-sleutel →
Bearer Token Patroon
Bearer tokens breiden het eenvoudige API-sleutel concept uit door context, vervaldatum en refresh mechanismen toe te voegen. Ze zijn ideaal voor applicaties die programmatisch credential management nodig hebben.
Bearer Tokens Verkrijgen
Wissel je API-sleutel en geheim in voor een bearer token geldig voor 24 uur:
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"
}'
Token Response Formaat
Het endpoint retourneert een bearer token met metadata:
{
"access_token": "eyJhbGciOiJIUzI1NiIs...",
"token_type": "Bearer",
"expires_in": 86400,
"refresh_token": "refresh_1234567..."
}
Bearer Tokens Gebruiken
Voeg het token toe aan de Authorization header voor alle volgende aanvragen:
curl -X GET "https://api.smartmoneyapi.com/v1/derivatives/funding-heatmap" \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."
Token Refresh Flow
Wanneer een token bijna verloopt, gebruik het refresh token om een nieuwe te verkrijgen zonder je API geheim nodig te hebben:
curl -X POST "https://api.smartmoneyapi.com/v1/auth/refresh" \
-H "Content-Type: application/json" \
-d '{
"refresh_token": "refresh_1234567..."
}'
OAuth 2.0 Implementatie
OAuth 2.0 stelt gebruikers in staat om applicaties toegang te verlenen tot hun Smart Money API accounts zonder credentials te delen. Dit is essentieel voor SaaS platforms, third-party integraties en multi-tenant applicaties.
OAuth 2.0 Authorization Code Flow
De standaard flow voor webapplicaties:
- Gebruiker Start Login — Gebruiker klikt op "Connect with Smart Money API"
- Redirect naar Authorization Server — Je app redirect de gebruiker naar Smart Money's authorization endpoint
- Gebruiker Verleent Toestemming — Gebruiker bekijkt de aangevraagde scopes en verleent toegang
- Authorization Code Geretourneerd — Gebruiker wordt teruggeredirect met een authorization code
- Wissel Code voor Token — Backend wisselt code voor een access token (code wordt nooit blootgesteld aan frontend)
- Sla Token Op — Bewaar het refresh token veilig; gebruik het access token voor API-aanroepen
Stap 1: Gebruiker doorsturen naar het autorisatie-eindpunt
// URL om de gebruiker naar door te sturen
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();
Stap 2: Callback afhandelen en code uitwisselen
// Backend handelt de /callback route af
const code = req.query.code;
const storedState = req.session.state;
const receivedState = req.query.state;
// Controleer de state parameter
if (storedState !== receivedState) {
throw new Error('State mismatch - CSRF attack detected');
}
// Wissel code uit voor 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();
// Bewaar tokens veilig
OAuth Scopes
Vraag alleen de scopes aan die je applicatie nodig heeft. Smart Money API definieert deze scopes:
| Scope |
Beschrijving |
| whales |
Toegang tot whale wallet tracking en accumulatie metrics |
| derivatives |
Toegang tot futures, perpetuals en funding rate data |
| onchain |
Toegang tot on-chain transactiestromen en analytics |
| alerts |
Maak en beheer webhook alerts |
| offline |
Toegang tot refresh tokens om nieuwe access tokens offline te verkrijgen |
JWT Token Management
JWT (JSON Web Tokens) bieden stateless authenticatie—de server hoeft geen sessiegegevens op te slaan. Smart Money API gebruikt RS256 (RSA Signature with SHA-256) voor token ondertekening, waardoor verificatie mogelijk is zonder contact met de API.
JWT Structuur
JWT tokens bestaan uit drie delen gescheiden door punten:
eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IjEifQ.
eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkFjY3QxMjM0In0.
SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
// HEADER.PAYLOAD.SIGNATURE
JWT Header
De header identificeert het algoritme en het tokentype:
{
"alg": "RS256",
"typ": "JWT",
"kid": "1"
}
JWT Payload Claims
De payload bevat claims (uitspraken over de gebruiker/app):
{
"sub": "acct_1234567890",
"name": "Trading Bot",
"iat": 1703001600,
"exp": 1703088000,
"scopes": ["whales", "derivatives"],
"aud": "https://api.smartmoneyapi.com"
}
Verifiëren van JWT Handtekeningen
Download Smart Money's publieke sleutel en verifieer tokens voordat je ze accepteert:
const jwt = require('jsonwebtoken');
const fs = require('fs');
// Haal publieke sleutel op van Smart Money API
const publicKey = fs.readFileSync('smartmoney-public.pem');
// Verifieer token
try {
const decoded = jwt.verify(token, publicKey, {
algorithms: ['RS256'],
audience: 'https://api.smartmoneyapi.com',
issuer: 'https://api.smartmoneyapi.com'
});
// Token is geldig, gebruik gedecodeerde claims
} catch (err) {
// Token ongeldig of verlopen
}
Sleutel Rotatie Strategie
Regelmatige sleutelrotatie is cruciaal voor het behoud van beveiliging. Zelfs met perfecte beveiligingspraktijken, ga ervan uit dat sleutels kunnen worden gecompromitteerd en implementeer systematische rotatie.
Rotatie Frequentie
Smart Money raadt verschillende rotatieschema's aan op basis van sleuteltype en gebruik:
| Sleutel Type |
Aanbevolen Rotatie |
Minimale Rotatie |
| Test API Sleutels |
Maandelijks |
Per kwartaal |
| Productie API Sleutels |
Per kwartaal |
Jaarlijks |
| OAuth Refresh Tokens |
Automatisch (na 90 dagen) |
Handmatig (na 180 dagen) |
| Service Account Sleutels |
Halfjaarlijks |
Jaarlijks |
Zero-Downtime Rotatie Proces
Roteer sleutels zonder service te onderbreken:
- Genereer Nieuwe Sleutel — Maak nieuwe API-sleutel aan via dashboard of API
- Implementeer Nieuwe Sleutel — Update applicatiegeheimen in staging, test grondig
- Geleidelijke Rollout — Implementeer op 10% van de servers, monitor op fouten
- Volledige implementatie — Implementeer op resterende servers
- Verkeer verifiëren — Bevestig dat alle verzoeken de nieuwe sleutel gebruiken
- Oude sleutel deactiveren — Markeer de oude sleutel als inactief maar verwijder deze niet direct
- Oude sleutel verwijderen — Na 48 uur zonder fouten, permanent verwijderen
Noodrotatie van sleutels
Als u vermoedt dat een sleutel is gecompromitteerd:
// Onmiddellijke actie: Deactiveer de gecompromitteerde sleutel
curl -X POST "https://api.smartmoneyapi.com/v1/keys/sk_live_xxx/revoke" \
-H "Authorization: Bearer token"
// Genereer direct een vervangende sleutel
curl -X POST "https://api.smartmoneyapi.com/v1/keys" \
-H "Content-Type: application/json" \
-d '{
"name": "Noodvervangingssleutel"
}'
Geautomatiseerde rotatie in Kubernetes
Gebruik Kubernetes Secrets en operators voor automatische rotatie:
apiVersion: batch/v1
kind: CronJob
metadata:
name: api-key-rotator
spec:
schedule: "0 0 * * 0" # Wekelijks op zondag
jobTemplate:
spec:
template:
spec:
containers:
- name: rotator
image: smartmoney-key-rotator:latest
Multi-Factor Authenticatie (MFA)
Voor accounts die toegang hebben tot productiegegevens, biedt MFA een extra beveiligingslaag door een tweede factor te vereisen naast alleen inloggegevens.
Ondersteunde MFA-methoden
- TOTP (Time-based One-Time Password) — Apps zoals Google Authenticator, Authy
- WebAuthn/FIDO2 — Hardwarebeveiligingssleutels, biometrie
- SMS Eenmalige codes — Minder veilig maar universeel ondersteund
- E-mailbevestiging — Bevestigingscodes verzonden naar geregistreerd e-mailadres
TOTP inschakelen voor accounttoegang
// Stap 1: Vraag MFA-installatie aan
curl -X POST "https://api.smartmoneyapi.com/v1/account/mfa/enable" \
-H "Authorization: Bearer token"
// Reactie bevat QR-code URL
{
"qr_code_url": "https://...",
"secret": "JBSWY3DPEBLW64TMMQ...",
"backup_codes": ["12345678", ...]
}
MFA tijdens API-operaties
Sommige operaties kunnen MFA-bevestiging vereisen, zelfs na authenticatie:
// Poging tot gevoelige operatie (sleutelrotatie)
curl -X POST "https://api.smartmoneyapi.com/v1/keys/rotate" \
-H "Authorization: Bearer token" \
-H "X-MFA-Token: mfa_challenge_abc123"
// Reactie: MFA vereist
{
"error": "mfa_required",
"mfa_token": "mfa_xyz789"
}
// Probeer opnieuw met TOTP-code
curl -X POST "https://api.smartmoneyapi.com/v1/keys/rotate" \
-H "Authorization: Bearer token" \
-H "X-MFA-Code: 123456"
Beveiligingsbest practices
Authenticatie is alleen zo sterk als de implementatie. Volg deze praktijken om de beveiliging te behouden:
Geheimenbeheer
- Plaats nooit geheimen in versiebeheer — Gebruik .env-bestanden met .gitignore
- Gebruik omgevingsvariabelen — Laad vanuit veilige geheimenbeheersystemen
- Scan repositories — Gebruik tools zoals TruffleHog, detect-secrets om blootgestelde sleutels te vinden
- Audit toegangslogboeken — Monitor wie toegang had tot geheimen en wanneer
Transportbeveiliging
- Gebruik altijd HTTPS — Verstuur nooit inloggegevens via onversleutelde verbindingen
- Verifieer SSL-certificaten — Schakel certificaatvalidatie niet uit in productie
- Gebruik certificaatpinning — Voor mobiele apps, voorkom MITM-aanvallen
- Handhaaf TLS 1.2+ — Schakel oudere protocollen uit
Credential Handling
- Hash geheimen — Bewaar bcrypt of Argon2 hashes, nooit platte tekst
- Minimaliseer levensduur — Bewaar inloggegevens alleen zo lang als nodig in het geheugen
- Wis gevoelige gegevens — Overschrijf inloggegevens expliciet na gebruik
- Gebruik veilige bibliotheken — Implementeer geen cryptografie zelf
Logging en monitoring
- Log nooit inloggegevens — Redacteer sleutels in logs, gebruik logmaskering
- Log authenticatiegebeurtenissen — Volg geslaagde en mislukte inlogpogingen
- Monitor op anomalieën — Waarschuw bij ongebruikelijke toegangspatronen
- Audit sleutelgebruik — Volg welke sleutels toegang hadden tot welke gegevens
Enterprise authenticatiepatronen
Grote organisaties vereisen vaak extra beveiligingscontroles en compliance-mogelijkheden.
SAML 2.0-integratie
Voor zakelijke klanten ondersteunt Smart Money API SAML 2.0-integratie met de identity provider van uw organisatie (Okta, Azure AD, etc.):
- Single Sign-On (SSO) — Gebruikers authenticeren via uw bedrijfs-IdP
- Automatische provisioning — Maak/deactiveer accounts op basis van groepsleden
- Handhaving — Vereis SAML voor alle gebruikers toegang
IP Whitelisting
Beperk API-toegang tot specifieke IP-adressen of CIDR-bereiken:
// Voeg IP toe aan whitelist
curl -X POST "https://api.smartmoneyapi.com/v1/account/ip-whitelist" \
-H "Authorization: Bearer token" \
-d '{
"cidr": "203.0.113.0/24",
"description": "Productieservers"
}'
Audit Logging en Compliance
Enterprise-abonnementen omvatten uitgebreide auditlogs voor compliance:
| Gebeurtenis |
Gelogde Gegevens |
| Authenticatie |
Gebruiker, tijdstempel, succes/mislukking, IP, MFA-status |
| Sleutelbewerkingen |
Sleutel-ID, actie, initiator, tijdstempel |
| Accountwijzigingen |
Wat is veranderd, wie heeft het veranderd, tijdstempel, voor/na waarden |
| Toegang tot Gegevens |
Gebruiker, endpoint, scopes, tijdstempel, aantal records |
Problemen met Authenticatie Oplossen
Ongeldige API-sleutelfout
Probleem: Ontvangt "401 Onbevoegd - Ongeldige API-sleutel"
Oplossingen:
- Controleer het sleutelformaat (moet beginnen met sk_test_ of sk_live_)
- Controleer op voorloop- of volgspaties in de sleutel
- Bevestig dat de sleutel niet is gedeactiveerd of geroteerd
- Controleer of u de juiste omgeving gebruikt (testsleutel voor test, live voor productie)
- Controleer of de API-sleutelmachtigingen overeenkomen met de vereisten van het endpoint
Token Verlopen Fout
Probleem: Bearer-token is verlopen, verzoeken mislukken
Oplossingen:
- Gebruik verversingstoken om een nieuw toegangstoken te verkrijgen
- Implementeer automatische tokenverversing 5 minuten voor vervaldatum
- Bewaar verversingstoken veilig (niet in localStorage voor SPAs)
- Behandel 401-reacties door het verversingstokenproces te proberen
CORS/Preflight-fouten
Probleem: Browser blokkeert verzoeken met CORS-fout
Oplossingen:
- API-aanroepen vanuit browsers moeten afkomstig zijn van whitelisted origins
- Voeg uw domein toe via het dashboard: Instellingen → CORS Origins
- Browser stuurt automatisch een OPTIONS preflight-verzoek
- Voor ontwikkeling, gebruik localhost:3000 of vergelijkbaar
MFA-uitdaging Voltooit Niet
Probleem: Bewerkingen die MFA vereisen mislukken zelfs met de juiste code
Oplossingen:
- Zorg ervoor dat de serverklok gesynchroniseerd is (TOTP is afhankelijk van tijd)
- Code is slechts 30 seconden geldig, genereer een nieuwe
- Gebruik reservecodes als de authenticator-app niet beschikbaar is
- Accountherstel beschikbaar via geregistreerd e-mailadres
Implementeer Veilige Authenticatie Vandaag
Smart Money API ondersteunt enterprise-grade authenticatie met OAuth 2.0, JWT, MFA en SAML-integratie. Beveilig uw API-integratie met industriebest practices.
Bekijk Enterprise-abonnementen
Heeft u SAML, IP whitelisting of toegewijde ondersteuning nodig? Neem contact op met ons verkoopteam.