Mga Advanced na Pattern sa Pagpapatotoo — OAuth 2.0, JWT, Key Rotation

Master ang sopistikadong mekanismo ng pagpapatotoo para sa pagsasama ng Smart Money API sa mga enterprise environment. Alamin ang mga daloy ng OAuth 2.0, pattern ng JWT token, secure na key rotation, at pagpapatupad ng multi-factor authentication.

Na-publish noong Marso 21, 2026 18 minutong pagbasa Advanced

Pangkalahatang-ideya sa Pagpapatotoo

Ang Smart Money API ay sumusuporta sa maraming pamamaraan ng pagpapatotoo na idinisenyo upang akma sa iba't ibang arkitektura ng aplikasyon, mga kinakailangan sa seguridad, at mga patakaran ng organisasyon. Ang pag-unawa sa mga pattern na ito ay tinitiyak na ang iyong pagsasama ay parehong secure at mahusay.

Ang pagpapatotoo sa Smart Money API ay gumagana sa tatlong pangunahing layer:

  • Mga API Key — Simpleng bearer token authentication para sa pag-unlad at tuwirang pagsasama
  • Mga JWT Token — Mga stateless, cryptographically signed token para sa mga distributed system at microservices
  • OAuth 2.0 — Delegated authorization framework para sa mga third-party integration at SaaS application

Prinsipyo ng Seguridad: Huwag kailanman ilantad ang mga kredensyal sa pagpapatotoo sa client-side code, log, version control, o mga mensahe ng error. Magpatupad ng credential rotation sa isang iskedyul at agad-agad kapag nakompromiso.

Ang bawat pamamaraan ay may natatanging mga pakinabang. Ang mga API key ay pinakamahusay para sa backend-to-backend communication kung saan kontrolado ang pag-iimbak ng kredensyal. Ang mga JWT token ay mahusay sa mga distributed architecture kung saan walang magagamit na shared state. Ang OAuth 2.0 ay nagbibigay ng user-delegated access para sa mga third-party application.

Pagpapatotoo sa API Key

Ang mga API key ay ang pinakasimpleng mekanismo ng pagpapatotoo—sila ay mga random na string na nabuo para sa iyong account na nagpapakilala sa iyong application sa Smart Money API. Ang bawat kahilingan ay dapat magsama ng iyong API key bilang isang header o query parameter.

Header-Based API Key

Ang inirerekomendang pamamaraan ay ang pagpasa ng iyong API key sa Authorization header gamit ang Bearer scheme:

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

Query Parameter API Key

Para sa mga WebSocket connection o kapag hindi mababago ang mga header, ipasa ang API key bilang isang query parameter:

WebSocket Connection
ws://localhost:8877/ws?api_key=sk_live_1234567890abcdef
// Nagtatag ng authenticated WebSocket stream

Mga Katangian ng API Key

Property Paglalarawan
Format 128-character hex string na may prefix na sk_test_ o sk_live_
Scope Inherits all permissions of the account that created it
Expiration Hindi kailanman awtomatikong mag-expire; dapat i-rotate nang manu-mano
Rotation Gumawa ng bagong key, ilipat ang trapiko, pagkatapos ay i-deactivate ang lumang key
Rate Limits Shared across all requests using the same key

Mga Praktis sa Seguridad ng API Key

  • Environment Variables — Mag-imbak ng mga key sa .env file (hindi nakommit sa version control) at i-load sa runtime
  • Vault Systems — Gumamit ng HashiCorp Vault, AWS Secrets Manager, o Azure Key Vault sa produksyon
  • Separate Keys — Panatilihin ang magkahiwalay na test at live key; i-rotate ang mga test key nang madalas
  • Minimal Scope — Gumawa ng magkahiwalay na key para sa iba't ibang integration kung posible
  • Audit Logging — I-log ang lahat ng paglikha at paggamit ng API key
Kunin ang iyong API key sa loob ng 30 segundo

Handa nang magtayo? Kumuha ng libreng API key (100 tawag/araw, walang card) at simulang kunin ang live na whale, funding at on-chain data.

Kunin ang iyong API key →

Pattern ng Bearer Token

Ang mga bearer token ay nagpapalawak sa simpleng konsepto ng API key sa pamamagitan ng pagdaragdag ng konteksto, expiration, at refresh mechanism. Sila ay mainam para sa mga aplikasyon na nangangailangan ng programmatic credential management.

Pagkuha ng Bearer Tokens

Ipalit ang iyong API key at secret para sa isang bearer token na may bisa sa 24 na oras:

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

Format ng Token Response

Ang endpoint ay nagbabalik ng bearer token na may metadata:

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

Paggamit ng Bearer Tokens

Isama ang token sa Authorization header para sa lahat ng kasunod na kahilingan:

Authenticated Request
curl -X GET "https://api.smartmoneyapi.com/v1/derivatives/funding-heatmap" \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."

Token Refresh Flow

Kapag malapit nang mag-expire ang isang token, gamitin ang refresh token upang makakuha ng bago nang hindi nangangailangan ng iyong API secret:

POST /auth/refresh
curl -X POST "https://api.smartmoneyapi.com/v1/auth/refresh" \
-H "Content-Type: application/json" \
-d '{
"refresh_token": "refresh_1234567..."
}'

Pagpapatupad ng OAuth 2.0

Ang OAuth 2.0 ay nagbibigay-daan sa mga user na magbigay ng access sa mga aplikasyon sa kanilang Smart Money API account nang hindi ibinabahagi ang mga kredensyal. Ito ay mahalaga para sa mga SaaS platform, third-party integration, at multi-tenant application.

OAuth 2.0 Authorization Code Flow

Ang standard flow para sa web application:

  1. User Initiates Login — Ang user ay nag-click ng "Connect with Smart Money API"
  2. Redirect to Authorization Server — Ang iyong app ay nag-redirect sa user sa authorization endpoint ng Smart Money
  3. User Grants Permission — Sinusuri ng user ang hiniling na mga scope at nagbibigay ng access
  4. Authorization Code Returned — Ang user ay na-redirect pabalik kasama ang authorization code
  5. Exchange Code for Token — Ang backend ay nagpapalit ng code para sa access token (hindi kailanman ilalantad ang code sa frontend)
  6. Mag-imbak ng Token — I-imbak nang ligtas ang refresh token; gamitin ang access token para sa mga tawag sa API

Hakbang 1: I-redirect ang User sa Authorization Endpoint

Frontend Redirect
// URL para i-redirect ang user
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();

Hakbang 2: I-handle ang Callback at I-exchange ang Code

Backend Code Exchange
// Backend ang humahawak sa /callback route
const code = req.query.code;
const storedState = req.session.state;
const receivedState = req.query.state;
// I-verify ang state parameter
if (storedState !== receivedState) {
throw new Error('State mismatch - CSRF attack detected');
}
// I-exchange ang code para sa 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();
// I-imbak nang ligtas ang mga token

OAuth Scopes

Humiling lamang ng mga scope na kailangan ng iyong aplikasyon. Ang Smart Money API ay nagtatakda ng mga sumusunod na scope:

Scope Description
whales Access sa whale wallet tracking at accumulation metrics
derivatives Access sa futures, perpetuals, at funding rate data
onchain Access sa on-chain transaction flows at analytics
alerts Gumawa at pamahalaan ang mga webhook alerts
offline Access sa refresh tokens para makakuha ng mga bagong access token offline

JWT Token Management

Ang JWT (JSON Web Tokens) ay nagbibigay ng stateless authentication—hindi kailangang mag-imbak ng session data ang server. Gumagamit ang Smart Money API ng RS256 (RSA Signature with SHA-256) para sa pag-sign ng token, na nagpapahintulot ng verification nang hindi kinakailangang makipag-ugnayan sa API.

JWT Structure

Ang mga JWT token ay binubuo ng tatlong bahagi na pinaghihiwalay ng tuldok:

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

JWT Header

Ang header ay nagpapakilala sa algorithm at uri ng token:

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

JWT Payload Claims

Ang payload ay naglalaman ng mga claims (mga pahayag tungkol sa user/app):

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

Verifying JWT Signatures

I-download ang public key ng Smart Money at i-verify ang mga token bago tanggapin ang mga ito:

Node.js Verification
const jwt = require('jsonwebtoken');
const fs = require('fs');
// Kunin ang public key mula sa Smart Money API
const publicKey = fs.readFileSync('smartmoney-public.pem');
// I-verify ang token
try {
const decoded = jwt.verify(token, publicKey, {
algorithms: ['RS256'],
audience: 'https://api.smartmoneyapi.com',
issuer: 'https://api.smartmoneyapi.com'
});
// Valid ang token, gamitin ang decoded claims
} catch (err) {
// Hindi valid o expired ang token
}

Key Rotation Strategy

Ang regular na key rotation ay kritikal para mapanatili ang seguridad. Kahit na may perpektong mga kasanayan sa seguridad, ipagpalagay na maaaring ma-compromise ang mga key at ipatupad ang sistematikong rotation.

Rotation Frequency

Iminumungkahi ng Smart Money ang iba't ibang iskedyul ng rotation batay sa uri at paggamit ng key:

Key Type Recommended Rotation Minimum Rotation
Test API Keys Monthly Quarterly
Production API Keys Quarterly Annually
OAuth Refresh Tokens Automatic (after 90 days) Manual (after 180 days)
Service Account Keys Semi-annually Annually

Zero-Downtime Rotation Process

I-rotate ang mga key nang hindi naaabala ang serbisyo:

  1. Generate New Key — Gumawa ng bagong API key sa pamamagitan ng dashboard o API
  2. Deploy New Key — I-update ang mga application secrets sa staging, i-test nang mabuti
  3. Gradual Rollout — I-deploy sa 10% ng mga server, subaybayan ang mga error
  4. Buong Paglulunsad — I-deploy sa natitirang mga server
  5. Patunayan ang Trapiko — Kumpirmahin na lahat ng request ay gumagamit ng bagong key
  6. I-deactivate ang Lumang Key — Markahan ang lumang key bilang inactive ngunit huwag agad burahin
  7. Burahin ang Lumang Key — Pagkatapos ng 48 oras na walang error, permanenteng burahin

Emergency Key Rotation

Kung pinaghihinalaan mong na-compromise ang isang key:

Emergency Rotation
// Agad na aksyon: I-deactivate ang compromised key
curl -X POST "https://api.smartmoneyapi.com/v1/keys/sk_live_xxx/revoke" \
-H "Authorization: Bearer token"
// Gumawa ng kapalit na key agad
curl -X POST "https://api.smartmoneyapi.com/v1/keys" \
-H "Content-Type: application/json" \
-d '{
"name": "Emergency Replacement Key"
}'

Automated Rotation in Kubernetes

Gamitin ang Kubernetes Secrets at operators para sa automatic rotation:

CronJob para sa Key Rotation
apiVersion: batch/v1
kind: CronJob
metadata:
name: api-key-rotator
spec:
schedule: "0 0 * * 0" # Linggo-linggo tuwing Sunday
jobTemplate:
spec:
template:
spec:
containers:
- name: rotator
image: smartmoney-key-rotator:latest

Multi-Factor Authentication (MFA)

Para sa mga account na uma-access sa production data, nagbibigay ang MFA ng karagdagang security layer sa pamamagitan ng pangangailangan ng pangalawang factor bukod sa credentials lamang.

MFA Methods Supported

  • TOTP (Time-based One-Time Password) — Mga app tulad ng Google Authenticator, Authy
  • WebAuthn/FIDO2 — Hardware security keys, biometrics
  • SMS One-Time Codes — Hindi gaanong secure ngunit laganap ang suporta
  • Email Confirmation — Mga confirmation code na ipinadala sa registered email

Enabling TOTP for Account Access

I-enable ang MFA
// Step 1: Request MFA setup
curl -X POST "https://api.smartmoneyapi.com/v1/account/mfa/enable" \
-H "Authorization: Bearer token"
// Response includes QR code URL
{
"qr_code_url": "https://...",
"secret": "JBSWY3DPEBLW64TMMQ...",
"backup_codes": ["12345678", ...]
}

MFA During API Operations

Ang ilang operasyon ay maaaring mangailangan ng MFA confirmation kahit na pagkatapos ng authentication:

MFA Challenge
// Pagtatangka ng sensitive operation (key rotation)
curl -X POST "https://api.smartmoneyapi.com/v1/keys/rotate" \
-H "Authorization: Bearer token" \
-H "X-MFA-Token: mfa_challenge_abc123"
// Response: MFA required
{
"error": "mfa_required",
"mfa_token": "mfa_xyz789"
}
// Subukang muli gamit ang TOTP code
curl -X POST "https://api.smartmoneyapi.com/v1/keys/rotate" \
-H "Authorization: Bearer token" \
-H "X-MFA-Code: 123456"

Security Best Practices

Ang authentication ay kasing-tibay lang ng implementasyon nito. Sundin ang mga practices na ito para mapanatili ang security:

Secrets Management

  • Huwag kailanman i-commit ang mga secrets sa version control — Gumamit ng .env files na may .gitignore
  • Gumamit ng environment variables — I-load mula sa secure na secret management systems
  • I-scan ang mga repository — Gumamit ng mga tool tulad ng TruffleHog, detect-secrets para makita ang exposed keys
  • Audit access logs — Subaybayan kung sino ang um-access sa mga secrets at kailan

Transport Security

  • Laging gumamit ng HTTPS — Huwag kailanman magpadala ng credentials sa unencrypted connections
  • I-verify ang SSL certificates — Huwag i-disable ang certificate validation sa production
  • Gumamit ng certificate pinning — Para sa mobile apps, pigilan ang MITM attacks
  • I-enforce ang TLS 1.2+ — I-disable ang mga lumang protocol

Credential Handling

  • I-hash ang mga secrets — Mag-store ng bcrypt o Argon2 hashes, huwag kailanman plaintext
  • Paiikliin ang lifetime — Panatilihin ang credentials sa memorya lamang habang kailangan
  • I-clear ang sensitive data — Tahasang i-overwrite ang credentials pagkatapos gamitin
  • Gumamit ng secure libraries — Huwag ipatupad ang cryptography nang mag-isa

Logging and Monitoring

  • Huwag kailanman mag-log ng credentials — I-redact ang mga key sa logs, gumamit ng log masking
  • Mag-log ng authentication events — Subaybayan ang successful at failed login attempts
  • Mag-monitor para sa anomalies — Alert sa hindi pangkaraniwang access patterns
  • Audit key usage — Subaybayan kung aling keys ang um-access sa anong data

Enterprise Authentication Patterns

Ang malalaking organisasyon ay madalas na nangangailangan ng karagdagang security controls at compliance capabilities.

SAML 2.0 Integration

Para sa enterprise customers, sinusuportahan ng Smart Money API ang SAML 2.0 integration sa iyong organization's identity provider (Okta, Azure AD, etc.):

  • Single Sign-On (SSO) — Ang mga user ay nag-a-authenticate sa pamamagitan ng iyong corporate IdP
  • Automatic provisioning — Gumawa/mag-disable ng mga account batay sa group membership
  • Enforcement — Pilitin ang SAML para sa lahat ng user access

IP Whitelisting

I-restrict ang access sa API sa mga partikular na IP address o CIDR ranges:

Pamamahala ng IP Whitelist
// Magdagdag ng IP sa whitelist
curl -X POST "https://api.smartmoneyapi.com/v1/account/ip-whitelist" \
-H "Authorization: Bearer token" \
-d '{
"cidr": "203.0.113.0/24",
"description": "Production servers"
}'

Audit Logging at Compliance

Kasama sa mga enterprise plan ang komprehensibong audit logs para sa compliance:

Event Naka-log na Data
Authentication User, timestamp, success/failure, IP, MFA status
Key Operations Key ID, action, initiator, timestamp
Account Changes Ano ang nabago, sino ang nagbago, timestamp, before/after values
Data Access User, endpoint, scopes, timestamp, record count

Pagtroubleshoot sa mga Isyu sa Authentication

Invalid API Key Error

Problema: Natatanggap ang "401 Unauthorized - Invalid API Key"

Mga Solusyon:

  • I-verify ang format ng key (dapat nagsisimula sa sk_test_ o sk_live_)
  • Suriin kung may trailing/leading whitespace sa key
  • Kumpirmahing hindi na-deactivate o na-rotate ang key
  • I-verify na ginagamit ang tamang environment (test key para sa test, live para sa production)
  • Tiyaking tumutugma ang mga permission ng API key sa mga kinakailangan ng endpoint

Token Expired Error

Problema: Nag-expire na ang Bearer token, nabibigo ang mga request

Mga Solusyon:

  • Gamitin ang refresh token para makakuha ng bagong access token
  • Magpatupad ng automatic token refresh 5 minuto bago mag-expire
  • Itago nang ligtas ang refresh token (hindi sa localStorage para sa SPAs)
  • I-handle ang mga 401 response sa pamamagitan ng pagsubok sa refresh token flow

CORS/Preflight Errors

Problema: Hinaharang ng browser ang mga request na may CORS error

Mga Solusyon:

  • Ang mga API call mula sa browser ay dapat manggaling sa mga whitelisted origin
  • Idagdag ang iyong domain sa pamamagitan ng dashboard: Settings → CORS Origins
  • Ang browser ay awtomatikong nagpapadala ng OPTIONS preflight request
  • Para sa development, gamitin ang localhost:3000 o katulad

MFA Challenge Not Completing

Problema: Nabibigo ang mga operasyon na nangangailangan ng MFA kahit tama ang code

Mga Solusyon:

  • Siguraduhing naka-synchronize ang oras ng server (umaasa sa oras ang TOTP)
  • Valid lamang ang code sa loob ng 30 segundo, gumawa ng bago
  • Gumamit ng backup codes kung hindi available ang authenticator app
  • Available ang account recovery sa pamamagitan ng registered email

Ipatupad ang Secure Authentication Ngayon

Sinusuportahan ng Smart Money API ang enterprise-grade authentication na may OAuth 2.0, JWT, MFA, at SAML integration. Protektahan ang iyong API integration gamit ang mga industry best practices.

Tingnan ang mga Enterprise Plan
Kailangan ng SAML, IP whitelisting, o dedicated support? Makipag-ugnayan sa aming sales team.

Mga Kaugnay na Resource

Magsimula nang libre — 200 calls/day, walang card

Kumuha ng live whale flow, funding, open interest at on-chain data sa 3 exchanges mula sa iisang API. Libreng tier, walang credit card, pwedeng mag-upgrade anumang oras.

Magsimula nang libre →
Subukan ang live API console → (hindi kailangan ng account)