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 Voorbeeld
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:

WebSocket Verbinding
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:

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"
}'

Token Response Formaat

Het endpoint retourneert een bearer token met metadata:

Response
{
"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:

Geauthenticeerde Aanvraag
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:

POST /auth/refresh
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:

  1. Gebruiker Start Login — Gebruiker klikt op "Connect with Smart Money API"
  2. Redirect naar Authorization Server — Je app redirect de gebruiker naar Smart Money's authorization endpoint
  3. Gebruiker Verleent Toestemming — Gebruiker bekijkt de aangevraagde scopes en verleent toegang
  4. Authorization Code Geretourneerd — Gebruiker wordt teruggeredirect met een authorization code
  5. Wissel Code voor Token — Backend wisselt code voor een access token (code wordt nooit blootgesteld aan frontend)
  6. Sla Token Op — Bewaar het refresh token veilig; gebruik het access token voor API-aanroepen

Stap 1: Gebruiker doorsturen naar het autorisatie-eindpunt

Frontend Doorsturen
// 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 Code Uitwisseling
// 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:

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

JWT Header

De header identificeert het algoritme en het tokentype:

Gedecodeerde Header
{
"alg": "RS256",
"typ": "JWT",
"kid": "1"
}

JWT Payload Claims

De payload bevat claims (uitspraken over de gebruiker/app):

Gedecodeerde Payload
{
"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:

Node.js Verificatie
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:

  1. Genereer Nieuwe Sleutel — Maak nieuwe API-sleutel aan via dashboard of API
  2. Implementeer Nieuwe Sleutel — Update applicatiegeheimen in staging, test grondig
  3. Geleidelijke Rollout — Implementeer op 10% van de servers, monitor op fouten
  4. Volledige implementatie — Implementeer op resterende servers
  5. Verkeer verifiëren — Bevestig dat alle verzoeken de nieuwe sleutel gebruiken
  6. Oude sleutel deactiveren — Markeer de oude sleutel als inactief maar verwijder deze niet direct
  7. Oude sleutel verwijderen — Na 48 uur zonder fouten, permanent verwijderen

Noodrotatie van sleutels

Als u vermoedt dat een sleutel is gecompromitteerd:

Noodrotatie
// 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:

CronJob voor sleutelrotatie
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

MFA inschakelen
// 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:

MFA-uitdaging
// 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:

IP Whitelist Beheer
// 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.

Gerelateerde Bronnen

Start gratis — 200 oproepen/dag, geen kaart

Krijg live whale flow, funding, open interest en on-chain data van 3 exchanges vanuit één API. Gratis tier, geen creditcard, upgrade op elk moment.

Start gratis →
Probeer de live API-console → (geen account nodig)