Dokumentace API
Pokročilé metody ověřování — OAuth 2.0, JWT, Rotace klíčů
Osvojte si sofistikované mechanismy ověřování pro integraci Smart Money API v podnikových prostředích. Naučte se OAuth 2.0 toky, vzory JWT tokenů, bezpečnou rotaci klíčů a implementaci vícefaktorového ověřování.
Publikováno 21. března 2026
•
18 minut čtení
•
Pokročilé
Přehled ověřování
Smart Money API podporuje více metod ověřování, které jsou navrženy tak, aby vyhovovaly různým architekturám aplikací, bezpečnostním požadavkům a organizačním politikám. Porozumění těmto vzorcům zajišťuje, že vaše integrace bude jak bezpečná, tak výkonná.
Ověřování v Smart Money API funguje ve třech hlavních vrstvách:
- API klíče — Jednoduché ověřování pomocí bearer tokenu pro vývoj a přímé integrace
- JWT tokeny — Stavově nezávislé, kryptograficky podepsané tokeny pro distribuované systémy a mikroslužby
- OAuth 2.0 — Framework delegovaného autorizačního rámce pro integrace třetích stran a SaaS aplikace
Bezpečnostní princip: Nikdy nezveřejňujte přihlašovací údaje v klientském kódu, logech, verzovacích systémech nebo chybových zprávách. Implementujte rotaci přihlašovacích údajů podle plánu a okamžitě při kompromitaci.
Každá metoda má své výhody. API klíče jsou nejvhodnější pro komunikaci mezi backendy, kde je úložiště přihlašovacích údajů pod kontrolou. JWT tokeny vynikají v distribuovaných architekturách, kde není k dispozici sdílený stav. OAuth 2.0 poskytuje uživatelsky delegovaný přístup pro aplikace třetích stran.
Ověřování pomocí API klíče
API klíče jsou nejjednodušším mechanismem ověřování — jsou to náhodné řetězce generované pro váš účet, které identifikují vaši aplikaci v Smart Money API. Každý požadavek musí obsahovat váš API klíč buď jako hlavičku, nebo parametr dotazu.
API klíč v hlavičce
Doporučený přístup je předání API klíče v hlavičce Authorization pomocí schématu Bearer:
curl -X GET "https://api.smartmoneyapi.com/v1/whales/btc" \
-H "Authorization: Bearer sk_live_1234567890abcdef" \
-H "Accept: application/json"
API klíč jako parametr dotazu
Pro WebSocket připojení nebo když nelze upravit hlavičky, předejte API klíč jako parametr dotazu:
ws://localhost:8877/ws?api_key=sk_live_1234567890abcdef
// Naváže ověřený WebSocket stream
Vlastnosti API klíče
| Vlastnost |
Popis |
| Formát |
128-znakový hexadecimální řetězec s předponou sk_test_ nebo sk_live_ |
| Rozsah |
Zdědí všechna oprávnění účtu, který jej vytvořil |
| Platnost |
Nikdy nevyprší automaticky; musí být ručně rotován |
| Rotace |
Vygenerujte nový klíč, migrujte provoz a poté deaktivujte starý klíč |
| Limity rychlosti |
Sdílené napříč všemi požadavky používající stejný klíč |
Bezpečnostní postupy pro API klíče
- Proměnné prostředí — Ukládejte klíče do souborů .env (necommitované do verzovacího systému) a načítávejte je za běhu
- Systémy trezorů — Používejte HashiCorp Vault, AWS Secrets Manager nebo Azure Key Vault v produkci
- Oddělené klíče — Udržujte oddělené testovací a produkční klíče; testovací klíče často rotujte
- Minimální rozsah — Vytvářejte oddělené klíče pro různé integrace, kdykoli je to možné
- Auditování logů — Logujte všechny události vytváření a používání API klíčů
Získejte svůj API klíč za 30 sekund
Připraveni stavět? Získejte zdarma API klíč (200 volání/den, bez karty) a začněte stahovat živá data o velrybách, financování a on-chain datech.
Získejte svůj API klíč →
Bearer Token Pattern
Bearer tokeny rozšiřují jednoduchý koncept API klíče přidáním kontextu, expirace a mechanismů obnovení. Jsou ideální pro aplikace, které potřebují programové řízení přihlašovacích údajů.
Získání Bearer tokenů
Vyměňte svůj API klíč a tajný klíč za bearer token platný 24 hodin:
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"
}'
Formát odpovědi tokenu
Endpoint vrátí bearer token s metadaty:
{
"access_token": "eyJhbGciOiJIUzI1NiIs...",
"token_type": "Bearer",
"expires_in": 86400,
"refresh_token": "refresh_1234567..."
}
Používání Bearer tokenů
Zahrňte token do hlavičky Authorization pro všechny následující požadavky:
curl -X GET "https://api.smartmoneyapi.com/v1/derivatives/funding-heatmap" \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."
Tok obnovení tokenu
Když se token blíží expiraci, použijte refresh token k získání nového bez nutnosti zadání API tajného klíče:
curl -X POST "https://api.smartmoneyapi.com/v1/auth/refresh" \
-H "Content-Type: application/json" \
-d '{
"refresh_token": "refresh_1234567..."
}'
Implementace OAuth 2.0
OAuth 2.0 umožňuje uživatelům udělit aplikacím přístup k jejich účtům Smart Money API bez sdílení přihlašovacích údajů. To je nezbytné pro SaaS platformy, integrace třetích stran a víceklientské aplikace.
Tok autorizačního kódu OAuth 2.0
Standardní tok pro webové aplikace:
- Uživatel zahájí přihlášení — Uživatel klikne na "Připojit se pomocí Smart Money API"
- Přesměrování na autorizační server — Vaše aplikace přesměruje uživatele na autorizační endpoint Smart Money
- Uživatel udělí oprávnění — Uživatel zkontroluje požadované rozsahy a udělí přístup
- Vrácení autorizačního kódu — Uživatel je přesměrován zpět s autorizačním kódem
- Výměna kódu za token — Backend vymění kód za přístupový token (kód není nikdy vystaven frontendu)
- Uložení tokenu — Uchovávejte obnovovací token bezpečně; pro volání API používejte přístupový token
Krok 1: Přesměrujte uživatele na autorizační endpoint
// URL pro přesměrování uživatele
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();
Krok 2: Zpracování callbacku a výměna kódu
// Backend zpracovává route /callback
const code = req.query.code;
const storedState = req.session.state;
const receivedState = req.query.state;
// Ověření parametru state
if (storedState !== receivedState) {
throw new Error('State mismatch - CSRF attack detected');
}
// Výměna kódu za 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();
// Uchovávejte tokeny bezpečně
OAuth Scopes
Požadujte pouze scopy, které vaše aplikace potřebuje. Smart Money API definuje tyto scopy:
| Scope |
Popis |
| whales |
Přístup k sledování peněženek velryb a metrikám akumulace |
| derivatives |
Přístup k datům futures, perpetuals a funding rate |
| onchain |
Přístup k on-chain transakčním tokům a analýzám |
| alerts |
Vytváření a správa webhookových upozornění |
| offline |
Přístup k obnovovacím tokenům pro získání nových přístupových tokenů offline |
JWT Token Management
JWT (JSON Web Tokens) poskytují bezstavovou autentizaci – server nepotřebuje ukládat session data. Smart Money API používá RS256 (RSA Signature with SHA-256) pro podepisování tokenů, což umožňuje ověření bez kontaktu s API.
JWT Structure
JWT tokeny se skládají ze tří částí oddělených tečkami:
eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IjEifQ.
eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkFjY3QxMjM0In0.
SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
// HEADER.PAYLOAD.SIGNATURE
JWT Header
Hlavička identifikuje algoritmus a typ tokenu:
{
"alg": "RS256",
"typ": "JWT",
"kid": "1"
}
JWT Payload Claims
Payload obsahuje claims (tvrzení o uživateli/aplikaci):
{
"sub": "acct_1234567890",
"name": "Trading Bot",
"iat": 1703001600,
"exp": 1703088000,
"scopes": ["whales", "derivatives"],
"aud": "https://api.smartmoneyapi.com"
}
Verifying JWT Signatures
Stáhněte si veřejný klíč Smart Money a ověřte tokeny před jejich přijetím:
const jwt = require('jsonwebtoken');
const fs = require('fs');
// Get public key from Smart Money API
const publicKey = fs.readFileSync('smartmoney-public.pem');
// Verify token
try {
const decoded = jwt.verify(token, publicKey, {
algorithms: ['RS256'],
audience: 'https://api.smartmoneyapi.com',
issuer: 'https://api.smartmoneyapi.com'
});
// Token is valid, use decoded claims
} catch (err) {
// Token invalid or expired
}
Key Rotation Strategy
Pravidelná rotace klíčů je klíčová pro udržení bezpečnosti. I při dokonalých bezpečnostních postupech předpokládejte, že klíče mohou být kompromitovány, a implementujte systematickou rotaci.
Rotation Frequency
Smart Money doporučuje různé plány rotace podle typu klíče a použití:
| Key Type |
Doporučená rotace |
Minimální rotace |
| Test API Keys |
Měsíčně |
Čtvrtletně |
| Production API Keys |
Čtvrtletně |
Ročně |
| OAuth Refresh Tokens |
Automaticky (po 90 dnech) |
Ručně (po 180 dnech) |
| Service Account Keys |
Pololetně |
Ročně |
Zero-Downtime Rotation Process
Rotujte klíče bez přerušení služby:
- Generate New Key — Vytvořte nový API klíč přes dashboard nebo API
- Deploy New Key — Aktualizujte tajné klíče aplikace ve stagingu, důkladně otestujte
- Gradual Rollout — Nasazení na 10 % serverů, sledování chyb
- Úplné nasazení — Nasazení na zbývající servery
- Ověření provozu — Potvrďte, že všechny požadavky používají nový klíč
- Deaktivace starého klíče — Označte starý klíč jako neaktivní, ale neodstraňujte jej okamžitě
- Smazání starého klíče — Po 48 hodinách bez chyb trvale smažte
Nouzová rotace klíčů
Pokud máte podezření, že klíč byl ohrožen:
// Okamžitá akce: Deaktivujte ohrožený klíč
curl -X POST "https://api.smartmoneyapi.com/v1/keys/sk_live_xxx/revoke" \
-H "Authorization: Bearer token"
// Okamžitě vygenerujte náhradní klíč
curl -X POST "https://api.smartmoneyapi.com/v1/keys" \
-H "Content-Type: application/json" \
-d '{
"name": "Nouzový náhradní klíč"
}'
Automatizovaná rotace v Kubernetes
Použijte Kubernetes Secrets a operátory pro automatickou rotaci:
apiVersion: batch/v1
kind: CronJob
metadata:
name: api-key-rotator
spec:
schedule: "0 0 * * 0" # Týdně v neděli
jobTemplate:
spec:
template:
spec:
containers:
- name: rotator
image: smartmoney-key-rotator:latest
Vícefaktorová autentizace (MFA)
Pro účty přistupující k produkčním datům poskytuje MFA další vrstvu zabezpečení vyžadováním druhého faktoru kromě přihlašovacích údajů.
Podporované metody MFA
- TOTP (Time-based One-Time Password) — Aplikace jako Google Authenticator, Authy
- WebAuthn/FIDO2 — Hardwarové bezpečnostní klíče, biometrie
- Jednorázové kódy přes SMS — Méně bezpečné, ale univerzálně podporované
- Potvrzení e-mailem — Potvrzovací kódy zaslané na registrovaný e-mail
Povolení TOTP pro přístup k účtu
// Krok 1: Požádejte o nastavení MFA
curl -X POST "https://api.smartmoneyapi.com/v1/account/mfa/enable" \
-H "Authorization: Bearer token"
// Odpověď obsahuje URL QR kódu
{
"qr_code_url": "https://...",
"secret": "JBSWY3DPEBLW64TMMQ...",
"backup_codes": ["12345678", ...]
}
MFA během API operací
Některé operace mohou vyžadovat potvrzení MFA i po autentizaci:
// Pokus o citlivou operaci (rotace klíče)
curl -X POST "https://api.smartmoneyapi.com/v1/keys/rotate" \
-H "Authorization: Bearer token" \
-H "X-MFA-Token: mfa_challenge_abc123"
// Odpověď: Vyžadováno MFA
{
"error": "mfa_required",
"mfa_token": "mfa_xyz789"
}
// Opakujte s TOTP kódem
curl -X POST "https://api.smartmoneyapi.com/v1/keys/rotate" \
-H "Authorization: Bearer token" \
-H "X-MFA-Code: 123456"
Doporučené postupy zabezpečení
Autentizace je pouze tak silná, jako její implementace. Dodržujte tyto postupy pro udržení zabezpečení:
Správa tajemství
- Nikdy neukládejte tajemství do verzovacího systému — Používejte .env soubory s .gitignore
- Používejte proměnné prostředí — Načtěte ze zabezpečených systémů pro správu tajemství
- Prohledávejte repozitáře — Používejte nástroje jako TruffleHog, detect-secrets k nalezení odhalených klíčů
- Audit přístupových logů — Sledujte, kdo přistupoval k tajemstvím a kdy
Zabezpečení přenosu
- Vždy používejte HTTPS — Nikdy neposílejte přihlašovací údaje přes nešifrovaná spojení
- Ověřujte SSL certifikáty — Nevypínejte ověřování certifikátů v produkci
- Používejte připínání certifikátů — Pro mobilní aplikace zabraňte útokům MITM
- Vynucujte TLS 1.2+ — Zakázat starší protokoly
Zpracování přihlašovacích údajů
- Hashujte tajemství — Ukládejte bcrypt nebo Argon2 hashe, nikdy prostý text
- Minimalizujte životnost — Uchovávejte přihlašovací údaje v paměti pouze tak dlouho, jak je potřeba
- Vymažte citlivá data — Explicitně přepište přihlašovací údaje po použití
- Používejte zabezpečené knihovny — Neimplementujte kryptografii sami
Logování a monitorování
- Nikdy nelogujte přihlašovací údaje — Redigujte klíče v logách, používejte maskování logů
- Logujte autentizační události — Sledujte úspěšné a neúspěšné pokusy o přihlášení
- Monitorujte anomálie — Upozorněte na neobvyklé vzorce přístupu
- Audit využití klíčů — Sledujte, které klíče přistupovaly k jakým datům
Podnikové vzorce autentizace
Velké organizace často vyžadují další bezpečnostní kontroly a schopnosti dodržování předpisů.
Integrace SAML 2.0
Pro podnikové zákazníky podporuje Smart Money API integraci SAML 2.0 s poskytovatelem identity vaší organizace (Okta, Azure AD atd.):
- Jednotné přihlašování (SSO) — Uživatelé se přihlašují přes vaše podnikové IdP
- Automatické zřizování — Vytvářejte/deaktivujte účty na základě členství ve skupinách
- Vynucování — Vyžadujte SAML pro veškerý přístup uživatelů
Whitelistování IP adres
Omezte přístup k API na konkrétní IP adresy nebo rozsahy CIDR:
// Přidání IP adresy do seznamu povolených
curl -X POST "https://api.smartmoneyapi.com/v1/account/ip-whitelist" \
-H "Authorization: Bearer token" \
-d '{
"cidr": "203.0.113.0/24",
"description": "Produkční servery"
}'
Protokolování auditu a dodržování předpisů
Podnikové plány zahrnují komplexní protokoly auditu pro dodržování předpisů:
| Událost |
Protokolovaná data |
| Autentizace |
Uživatel, časové razítko, úspěch/neúspěch, IP, stav MFA |
| Klíčové operace |
ID klíče, akce, iniciátor, časové razítko |
| Změny účtu |
Co se změnilo, kdo to změnil, časové razítko, hodnoty před/po |
| Přístup k datům |
Uživatel, endpoint, rozsahy, časové razítko, počet záznamů |
Řešení problémů s autentizací
Chyba neplatného API klíče
Problém: Obdržení "401 Unauthorized - Invalid API Key"
Řešení:
- Ověřte formát klíče (měl by začínat sk_test_ nebo sk_live_)
- Zkontrolujte koncové/úvodní mezery v klíči
- Potvrďte, že klíč nebyl deaktivován nebo obměněn
- Ověřte, že používáte správné prostředí (testovací klíč pro test, živý pro produkci)
- Zkontrolujte, zda oprávnění API klíče odpovídají požadavkům endpointu
Chyba vypršení platnosti tokenu
Problém: Bearer token vypršel, požadavky selhávají
Řešení:
- Použijte obnovovací token k získání nového přístupového tokenu
- Implementujte automatické obnovení tokenu 5 minut před vypršením platnosti
- Uchovávejte obnovovací token bezpečně (ne v localStorage pro SPA)
- Zpracujte odpovědi 401 pokusem o tok obnovovacího tokenu
Chyby CORS/Preflight
Problém: Prohlížeč blokuje požadavky s chybou CORS
Řešení:
- Volání API z prohlížečů musí pocházet z povolených zdrojů
- Přidejte svou doménu přes dashboard: Nastavení → CORS Origins
- Prohlížeč automaticky odesílá OPTIONS preflight požadavek
- Pro vývoj použijte localhost:3000 nebo podobné
MFA výzva se nedokončí
Problém: Operace vyžadující MFA selhávají i se správným kódem
Řešení:
- Ujistěte se, že serverový čas je synchronizován (TOTP závisí na čase)
- Kód je platný pouze 30 sekund, vygenerujte nový
- Použijte záložní kódy, pokud není dostupná autentizační aplikace
- Obnovení účtu je k dispozici přes registrovaný e-mail
Implementujte zabezpečenou autentizaci ještě dnes
Smart Money API podporuje podnikovou autentizaci s OAuth 2.0, JWT, MFA a integrací SAML. Zabezpečte svou integraci API pomocí osvědčených postupů v oboru.
Zobrazit podnikové plány
Potřebujete SAML, whitelisting IP nebo vyhrazenou podporu? Kontaktujte náš prodejní tým.