Avancerade autentiseringsmönster — OAuth 2.0, JWT, nyckelrotation

Behärska sofistikerade autentiseringsmekanismer för att integrera Smart Money API i företagsmiljöer. Lär dig OAuth 2.0-flöden, JWT-tokenmönster, säker nyckelrotation och implementering av multi-faktorautentisering.

Publicerad 21 mars 2026 18 min läsning Avancerad

Autentiseringsöversikt

Smart Money API stöder flera autentiseringsmetoder som är utformade för att passa olika applikationsarkitekturer, säkerhetskrav och organisatoriska policys. Att förstå dessa mönster säkerställer att din integration är både säker och presterande.

Autentisering i Smart Money API fungerar över tre primära lager:

  • API-nycklar — Enkel bearer token-autentisering för utveckling och enkla integrationer
  • JWT-tokens — Tillståndslösa, kryptografiskt signerade tokens för distribuerade system och mikrotjänster
  • OAuth 2.0 — Delegerat auktoriseringsramverk för tredjepartsintegrationer och SaaS-applikationer

Säkerhetsprincip: Exponera aldrig autentiseringsuppgifter i klientkod, loggar, versionshantering eller felmeddelanden. Implementera regelbunden och omedelbar nyckelrotation vid kompromettering.

Varje metod har distinkta fördelar. API-nycklar fungerar bäst för backend-till-backend-kommunikation där autentiseringsuppgifterna är kontrollerade. JWT-tokens är överlägsna i distribuerade arkitekturer utan delat tillstånd. OAuth 2.0 ger användardelegerad åtkomst för tredjepartsapplikationer.

API-nyckelautentisering

API-nycklar är den enklaste autentiseringsmekanismen—de är slumpmässiga strängar som genereras för ditt konto och identifierar din applikation för Smart Money API. Varje förfrågan måste innehålla din API-nyckel antingen som en header eller en frågeparameter.

Header-baserad API-nyckel

Det rekommenderade tillvägagångssättet är att skicka din API-nyckel i Authorization-headern med hjälp av Bearer-schemat:

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

Frågeparameter API-nyckel

För WebSocket-anslutningar eller när headers inte kan ändras, skicka API-nyckeln som en frågeparameter:

WebSocket-anslutning
ws://localhost:8877/ws?api_key=sk_live_1234567890abcdef
// Etablerar autentiserad WebSocket-ström

API-nyckelns egenskaper

Egenskap Beskrivning
Format 128-tecken lång hex-sträng med prefixet sk_test_ eller sk_live_
Omfattning Ärver alla behörigheter från kontot som skapade den
Utgångsdatum Upphör aldrig automatiskt; måste roteras manuellt
Rotation Generera ny nyckel, migrera trafik och inaktivera sedan den gamla nyckeln
Begränsningar för antal förfrågningar Delas över alla förfrågningar som använder samma nyckel

Säkerhetsrutiner för API-nycklar

  • Miljövariabler — Lagra nycklar i .env-filer (som inte ingår i versionskontroll) och ladda dem vid körning
  • Vault-system — Använd HashiCorp Vault, AWS Secrets Manager eller Azure Key Vault i produktion
  • Separata nycklar — Förvalta separata test- och live-nycklar; rotera testnycklar regelbundet
  • Minimal omfattning — Skapa separata nycklar för olika integrationer när det är möjligt
  • Granskningsloggning — Logga alla API-nyckelskapande och användningshändelser
Få din API-nyckel på 30 sekunder

Redo att bygga? Hämta en gratis API-nyckel (200 anrop/dag, inget kort behövs) och börja hämta live-data om valhajar, finansiering och on-chain-data.

Få din API-nyckel →

Bearer Token-mönster

Bearer-tokens utökar det enkla API-nyckelkonceptet genom att lägga till kontext, förfallotid och uppdateringsmekanismer. De är idealiska för applikationer som behöver programmatisk hantering av autentiseringsuppgifter.

Hämta Bearer-tokens

Växla din API-nyckel och hemlighet mot en bearer-token som är giltig i 24 timmar:

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-svarsformat

Slutpunkten returnerar en bearer-token med metadata:

Svar
{
"access_token": "eyJhbGciOiJIUzI1NiIs...",
"token_type": "Bearer",
"expires_in": 86400,
"refresh_token": "refresh_1234567..."
}

Använda Bearer-tokens

Inkludera token i Authorization-headern för alla efterföljande förfrågningar:

Autentiserad förfrågan
curl -X GET "https://api.smartmoneyapi.com/v1/derivatives/funding-heatmap" \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."

Token-uppdateringsflöde

När en token närmar sig sin förfallotid, använd refresh-token för att få en ny utan att behöva din API-hemlighet:

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-implementering

OAuth 2.0 gör det möjligt för användare att bevilja applikationer tillgång till sina Smart Money API-konton utan att dela autentiseringsuppgifter. Detta är viktigt för SaaS-plattformar, tredjepartsintegrationer och applikationer med flera innehavare.

OAuth 2.0 Authorization Code Flow

Standardflödet för webbapplikationer:

  1. Användaren initierar inloggning — Användaren klickar på "Anslut med Smart Money API"
  2. Omdirigering till auktoriseringsserver — Din app omdirigerar användaren till Smart Moneys auktoriseringsslutpunkt
  3. Användaren beviljar tillstånd — Användaren granskar begärda scope och beviljar åtkomst
  4. Auktoriseringskod returnerad — Användaren omdirigeras tillbaka med en auktoriseringskod
  5. Växla kod mot token — Backend växlar koden mot en åtkomsttoken (koden exponeras aldrig för frontend)
  6. Lagra token — Lagra uppdateringstoken säkert; använd åtkomsttoken för API-anrop

Steg 1: Omdirigera användaren till auktoriseringsslutpunkten

Omdirigering från frontend
// URL för att omdirigera användaren till
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();

Steg 2: Hantera återanrop och utbyte av kod

Backend-kodutbyte
// Backend hanterar /callback-rutt
const code = req.query.code;
const storedState = req.session.state;
const receivedState = req.query.state;
// Verifiera state-parameter
if (storedState !== receivedState) {
throw new Error('State mismatch - CSRF-attack upptäckt');
}
// Byt kod mot 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();
// Lagra tokens säkert

OAuth-scopes

Begär endast de scopes som din applikation behöver. Smart Money API definierar dessa scopes:

Scope Beskrivning
whales Åtkomst till spårning av valletthållning och ackumuleringsmått för stora investerare
derivatives Åtkomst till terminer, perpetuals och finansieringsratedata
onchain Åtkomst till on-chain-transaktionsflöden och analyser
alerts Skapa och hantera webhook-varningar
offline Åtkomst till uppdateringstokens för att få nya åtkomsttokens offline

JWT-tokenhantering

JWT (JSON Web Tokens) tillhandahåller tillståndslös autentisering—servern behöver inte lagra sessionsdata. Smart Money API använder RS256 (RSA-signatur med SHA-256) för tokensignering, vilket möjliggör verifiering utan att kontakta API:et.

JWT-struktur

JWT-tokens består av tre delar separerade med punkter:

JWT-format
eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IjEifQ.
eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkFjY3QxMjM0In0.
SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
// HEADER.PAYLOAD.SIGNATURE

JWT-header

Headern identifierar algoritmen och tokentypen:

Avkodad header
{
"alg": "RS256",
"typ": "JWT",
"kid": "1"
}

JWT-payload-claims

Payloaden innehåller claims (påståenden om användaren/appen):

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

Verifiera JWT-signaturer

Ladda ner Smart Moneys publika nyckel och verifiera tokens innan du accepterar dem:

Node.js-verifiering
const jwt = require('jsonwebtoken');
const fs = require('fs');
// Hämta publika nyckeln från Smart Money API
const publicKey = fs.readFileSync('smartmoney-public.pem');
// Verifiera token
try {
const decoded = jwt.verify(token, publicKey, {
algorithms: ['RS256'],
audience: 'https://api.smartmoneyapi.com',
issuer: 'https://api.smartmoneyapi.com'
});
// Token är giltig, använd avkodade claims
} catch (err) {
// Token ogiltig eller utgången
}

Nyckelrotationsstrategi

Regelbunden nyckelrotation är avgörande för att upprätthålla säkerheten. Även med perfekta säkerhetsrutiner, anta att nycklar kan komprometteras och implementera systematisk rotation.

Rotationsfrekvens

Smart Money rekommenderar olika rotationsscheman baserat på nyckeltyp och användning:

Nyckeltyp Rekommenderad rotation Minsta rotation
Test-API-nycklar Månadsvis Kvartalsvis
Produktions-API-nycklar Kvartalsvis Årligen
OAuth-uppdateringstokens Automatisk (efter 90 dagar) Manuell (efter 180 dagar)
Tjänstekontonycklar Halvårsvis Årligen

Nedtidsfri rotationsprocess

Rotera nycklar utan avbrott i tjänsten:

  1. Generera ny nyckel — Skapa ny API-nyckel via dashboard eller API
  2. Distribuera ny nyckel — Uppdatera applikationshemligheter i staging, testa noggrant
  3. Gradvis utrullning — Distribuera till 10% av servrarna, övervaka för fel
  4. Fullständig lansering — Distribuera till återstående servrar
  5. Verifiera trafik — Bekräfta att alla förfrågningar använder ny nyckel
  6. Inaktivera gammal nyckel — Markera gammal nyckel som inaktiv men ta inte bort omedelbart
  7. Ta bort gammal nyckel — Efter 48 timmar utan fel, ta bort permanent

Nödvändig nyckelrotation

Om du misstänker att en nyckel har komprometterats:

Nödrotation
// Omedelbar åtgärd: Inaktivera komprometterad nyckel
curl -X POST "https://api.smartmoneyapi.com/v1/keys/sk_live_xxx/revoke" \
-H "Authorization: Bearer token"
// Generera ersättningsnyckel omedelbart
curl -X POST "https://api.smartmoneyapi.com/v1/keys" \
-H "Content-Type: application/json" \
-d '{
"name": "Nödvändig ersättningsnyckel"
}'

Automatiserad rotation i Kubernetes

Använd Kubernetes Secrets och operators för automatisk rotation:

CronJob för nyckelrotation
apiVersion: batch/v1
kind: CronJob
metadata:
name: api-key-rotator
spec:
schedule: "0 0 * * 0" # Varje söndag
jobTemplate:
spec:
template:
spec:
containers:
- name: rotator
image: smartmoney-key-rotator:latest

Multi-Faktor-autentisering (MFA)

För konton som har tillgång till produktionsdata ger MFA ett extra säkerhetslager genom att kräva en andra faktor utöver inloggningsuppgifter.

MFA-metoder som stöds

  • TOTP (Time-based One-Time Password) — Appar som Google Authenticator, Authy
  • WebAuthn/FIDO2 — Hårdvarusäkerhetsnycklar, biometri
  • SMS engångskoder — Mindre säkert men allmänt stött
  • E-postbekräftelse — Bekräftelsekoder skickade till registrerad e-post

Aktivera TOTP för kontotillgång

Aktivera MFA
// Steg 1: Begär MFA-inställning
curl -X POST "https://api.smartmoneyapi.com/v1/account/mfa/enable" \
-H "Authorization: Bearer token"
// Svar inkluderar QR-kod-URL
{
"qr_code_url": "https://...",
"secret": "JBSWY3DPEBLW64TMMQ...",
"backup_codes": ["12345678", ...]
}

MFA under API-operationer

Vissa operationer kan kräva MFA-bekräftelse även efter autentisering:

MFA-utmaning
// Försöker utföra känslig operation (nyckelrotation)
curl -X POST "https://api.smartmoneyapi.com/v1/keys/rotate" \
-H "Authorization: Bearer token" \
-H "X-MFA-Token: mfa_challenge_abc123"
// Svar: MFA krävs
{
"error": "mfa_required",
"mfa_token": "mfa_xyz789"
}
// Försök igen med TOTP-kod
curl -X POST "https://api.smartmoneyapi.com/v1/keys/rotate" \
-H "Authorization: Bearer token" \
-H "X-MFA-Code: 123456"

Säkerhetsbästa praxis

Autentisering är bara så stark som dess implementering. Följ dessa metoder för att upprätthålla säkerhet:

Hantering av hemligheter

  • Lägg aldrig hemligheter i versionskontroll — Använd .env-filer med .gitignore
  • Använd miljövariabler — Ladda från säkra hemlighetshanteringssystem
  • Skanna databaser — Använd verktyg som TruffleHog, detect-secrets för att hitta exponerade nycklar
  • Granska åtkomstloggar — Övervaka vem som har tillgång till hemligheter och när

Transportsäkerhet

  • Använd alltid HTTPS — Skicka aldrig inloggningsuppgifter över okrypterade anslutningar
  • Verifiera SSL-certifikat — Inaktivera inte certifikatvalidering i produktion
  • Använd certifikatpinning — För mobilappar, förhindra MITM-attacker
  • Tvinga TLS 1.2+ — Inaktivera äldre protokoll

Hantering av inloggningsuppgifter

  • Hasha hemligheter — Lagra bcrypt eller Argon2-hashar, aldrig i klartext
  • Minimera livstid — Behåll inloggningsuppgifter i minnet endast så länge som nödvändigt
  • Rensa känsliga data — Skriv över inloggningsuppgifter explicit efter användning
  • Använd säkra bibliotek — Implementera inte kryptografi själv

Loggning och övervakning

  • Logga aldrig inloggningsuppgifter — Redigera nycklar i loggar, använd loggmaskning
  • Logga autentiseringshändelser — Spåra lyckade och misslyckade inloggningsförsök
  • Övervaka för avvikelser — Varna för ovanliga åtkomstmönster
  • Granska nyckelanvändning — Spåra vilka nycklar som har tillgång till vilka data

Företagsautentiseringsmönster

Stora organisationer kräver ofta ytterligare säkerhetskontroller och efterlevnadsmöjligheter.

SAML 2.0-integration

För företagskunder stöder Smart Money API SAML 2.0-integration med din organisations identitetsleverantör (Okta, Azure AD, etc.):

  • Enkel inloggning (SSO) — Användare autentiseras genom företagets IdP
  • Automatisk etablering — Skapa/inaktivera konton baserat på gruppmedlemskap
  • Tvingande — Kräv SAML för all användaråtkomst

IP-vitlistning

Begränsa API-åtkomst till specifika IP-adresser eller CIDR-intervall:

IP-Whitelist-hantering
// Lägg till IP i whitelist
curl -X POST "https://api.smartmoneyapi.com/v1/account/ip-whitelist" \
-H "Authorization: Bearer token" \
-d '{
"cidr": "203.0.113.0/24",
"description": "Produktionsservrar"
}'

Granskningsloggning och efterlevnad

Enterprise-planer inkluderar omfattande granskningsloggar för efterlevnad:

Händelse Loggad data
Autentisering Användare, tidsstämpel, lyckat/misslyckat, IP, MFA-status
Nyckeloperationer Nyckel-ID, åtgärd, initierare, tidsstämpel
Kontoändringar Vad som ändrades, vem som ändrade det, tidsstämpel, före/efter-värden
Dataåtkomst Användare, slutpunkt, scope, tidsstämpel, antal poster

Felsökning av autentiseringsproblem

Ogiltigt API-nyckelfel

Problem: Får "401 Unauthorized - Invalid API Key"

Lösningar:

  • Verifiera nyckelformat (ska börja med sk_test_ eller sk_live_)
  • Kontrollera efter inledande/avslutande blanktecken i nyckeln
  • Bekräfta att nyckeln inte har inaktiverats eller roterats
  • Verifiera att du använder rätt miljö (testnyckel för test, live för produktion)
  • Kontrollera att API-nyckelns behörigheter matchar slutpunktens krav

Token har upphört att gälla

Problem: Bearer-token har upphört att gälla, förfrågningar misslyckas

Lösningar:

  • Använd refresh-token för att få en ny access-token
  • Implementera automatisk token-uppdatering 5 minuter före utgång
  • Förvara refresh-token säkert (inte i localStorage för SPAs)
  • Hantera 401-svar genom att försöka med refresh-token-flöde

CORS/Preflight-fel

Problem: Webbläsaren blockerar förfrågningar med CORS-fel

Lösningar:

  • API-anrop från webbläsare måste komma från whitelistade ursprung
  • Lägg till din domän via instrumentpanelen: Inställningar → CORS Origins
  • Webbläsaren skickar automatiskt en OPTIONS preflight-förfrågan
  • För utveckling, använd localhost:3000 eller liknande

MFA-utmaning slutförs inte

Problem: Operationer som kräver MFA misslyckas trots korrekt kod

Lösningar:

  • Se till att serverklockan är synkroniserad (TOTP förlitar sig på tid)
  • Koden är endast giltig i 30 sekunder, generera en ny
  • Använd reservkoder om autentiseringsappen inte är tillgänglig
  • Kontoåterställning tillgänglig via registrerad e-post

Implementera säker autentisering idag

Smart Money API stöder företagsgrad av autentisering med OAuth 2.0, JWT, MFA och SAML-integration. Säkerställ din API-integration med branschens bästa praxis.

Visa Enterprise-planer
Behöver du SAML, IP-whitelisting eller dedikerad support? Kontakta vår försäljningsavdelning.

Relaterade resurser

Börja gratis – 200 anrop/dag, inget kort

Få live whale flow, finansiering, öppen ränta och on-chain-data över 3 börser från ett API. Gratis nivå, inget kreditkort, uppgradera när som helst.

Börja gratis →
Prova live API-konsolen → (inget konto behövs)