คู่มือการยืนยันตัวตน

เรียนรู้วิธีการยืนยันตัวตนกับ Smart Money API โดยใช้ API keys, JWT tokens และ OAuth 2.0 ปรับใช้วิธีการยืนยันตัวตนมาตรฐานอุตสาหกรรมและแนวทางปฏิบัติที่ดีที่สุดเพื่อความปลอดภัย

ภาพรวม

Smart Money API รองรับวิธีการยืนยันตัวตนหลายรูปแบบสำหรับกรณีใช้งานที่แตกต่างกัน เลือกวิธีที่เหมาะกับการใช้งานของคุณ:

API Keys (หลัก): ส่งคีย์ของคุณใน X-API-Key ส่วนหัวของคำขอสำหรับการเรียกใช้ REST API ทั้งหมด นี่เป็นวิธีที่แนะนำสำหรับบอทและการใช้งานแบบ server-to-server
Session JWT (สำรอง): เซสชันเบราว์เซอร์/แดชบอร์ดจะยืนยันตัวตนด้วย session JWT ผ่าน Authorization: Bearer, มีอายุ 24 ชั่วโมง ไคลเอนต์แบบโปรแกรมควรใช้ X-API-Key.
OAuth 2.0: การยืนยันตัวตนระดับองค์กรสำหรับแอปพลิเคชันหลายผู้ใช้และการรวมระบบกับบุคคลที่สาม ผู้ใช้จะอนุญาตให้แอปของคุณเข้าถึงข้อมูลของพวกเขา
คำขอ API ทั้งหมดต้องทำผ่าน HTTPS คำขอ HTTP ที่ไม่เข้ารหัสจะถูกปฏิเสธ นอกจากนี้ ห้ามใส่ API keys ในระบบควบคุมเวอร์ชันหรือเผยแพร่公開

API Keys

API keys เป็นข้อมูลประจำตัวที่ไม่ซ้ำกันที่ออกให้กับบัญชีของคุณ แต่ละคีย์แสดงถึงชุดสิทธิ์และโควต้าที่กำหนด คุณสามารถสร้างคีย์หลายคีย์สำหรับแอปพลิเคชันหรือสภาพแวดล้อมที่แตกต่างกัน (development, staging, production)

การสร้าง API Key

สร้าง API keys จากคอนโซลบัญชีของคุณ:

  1. ไปที่ Smart Money Console
  2. เลือก "API Keys" จากแถบด้านข้าง
  3. คลิก "Generate New Key"
  4. เลือกประเภทคีย์ (Development, Staging, Production)
  5. กำหนดขีดจำกัดอัตราการใช้งานและฟีเจอร์
  6. คัดลอกและเก็บคีย์อย่างปลอดภัย
บันทึก API key ของคุณทันที! คุณจะไม่สามารถดูมันอีกครั้งได้ หากคุณสูญหาย คุณจะต้องสร้างคีย์ใหม่

รูปแบบคีย์

API keys มีรูปแบบมาตรฐานดังนี้:

รูปแบบคีย์
sk_live_4e3e4d0f1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5z sk_test_8f4g5h6i7j8k9l0m1n2o3p4q5r6s7t8u9v0w1x2y3z4a5b6c7d8e9f sk_dev_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5z6a7b

คำนำหน้าคีย์ระบุสภาพแวดล้อม:

sk_live_ — คีย์ production พร้อมโควต้าเต็ม
sk_test_ — คีย์ทดสอบพร้อมโควต้าลดลงและข้อมูล development
sk_dev_ — คีย์ development ส่วนบุคคลพร้อมข้อมูล sandbox

X-API-Key Header (หลัก)

ส่ง API key ของคุณในส่วนหัวคำขอ X-API-Key สำหรับคำขอ API ทั้งหมด ห้ามวางคีย์ของคุณใน URL

HTTP Header

HTTP
GET /v1/whales/events HTTP/1.1 Host: api.smartmoneyapi.com X-API-Key: sm_your_key Content-Type: application/json

ตัวอย่าง cURL

Shell
curl -X GET https://api.smartmoneyapi.com/v1/whales/events \ -H "X-API-Key: sm_your_key" \ -H "Content-Type: application/json"

ตัวอย่าง Python

Python
import requests api_key = "sm_your_key" headers = { "X-API-Key": api_key, "Content-Type": "application/json" } response = requests.get( "https://api.smartmoneyapi.com/v1/whales/events", headers=headers ) data = response.json()

การยืนยันตัวตนด้วย JWT Token

สำหรับเซสชันที่ใช้งานยาวนานและการสื่อสารแบบ server-to-server ให้แลก API key ของคุณเป็น JWT token JWT tokens มีอายุ 24 ชั่วโมงและลดความจำเป็นในการเก็บ API key ในโค้ดแอปพลิเคชัน

การรับ JWT Token

ส่ง API key ของคุณไปยัง endpoint JWT เพื่อรับ token:

cURL
curl -X POST https://api.smartmoneyapi.com/auth/jwt \ -H "Content-Type: application/json" \ -d '{ "api_key": "sk_live_4e3e4d0f1b2c3d4e5f6g7h8i9j0k1l2m" }'

การตอบสนอง JWT

JSON
{ "success": true, "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c", "expires_in": 86400, "token_type": "Bearer" }

การใช้ JWT Token

ใช้ JWT token ในส่วนหัว Authorization เหมือนกับ API keys:

Python
import requests import json from datetime import datetime, timedelta class JWTAuth: def __init__(self, api_key): self.api_key = api_key self.token = None self.token_expires = None def get_valid_token(self): # Check if current token is still valid if self.token and self.token_expires > datetime.now(): return self.token # Get new token response = requests.post( "https://api.smartmoneyapi.com/auth/jwt", json={"api_key": self.api_key} ) data = response.json() self.token = data["token"] self.token_expires = datetime.now() + timedelta(seconds=data["expires_in"]) return self.token def request(self, method, url, **kwargs): token = self.get_valid_token() headers = kwargs.get("headers", {}) headers["Authorization"] = f"Bearer {token}" kwargs["headers"] = headers return requests.request(method, url, **kwargs) # Usage auth = JWTAuth("sk_live_4e3e4d0f1b2c3d4e5f6g7h8i9j0k1l2m") response = auth.request( "GET", "https://api.smartmoneyapi.com/v1/whales/events" ) print(response.json())

OAuth 2.0

OAuth 2.0 สำหรับแอปพลิเคชันที่ต้องการเข้าถึงบัญชีผู้ใช้หลายราย ผู้ใช้จะอนุญาตให้แอปของคุณเข้าถึงข้อมูลของพวกเขาโดยไม่ต้องแบ่งปัน API keys

กระบวนการ OAuth 2.0

Smart Money API รองรับกระบวนการ Authorization Code สำหรับแอปพลิเคชันเว็บ:

  1. ผู้ใช้คลิกปุ่ม "Connect with Smart Money"
  2. เบราว์เซอร์เปลี่ยนเส้นทางไปยังหน้าอนุญาต
  3. ผู้ใช้ให้สิทธิ์แอปพลิเคชันของคุณ
  4. เบราว์เซอร์เปลี่ยนเส้นทางกลับพร้อมรหัสอนุญาต
  5. ระบบหลังบ้านของคุณแลกเปลี่ยนรหัสเป็น access token
  6. ตอนนี้คุณสามารถเข้าถึงข้อมูลผู้ใช้ในนามของพวกเขาได้

ขั้นตอนที่ 1: คำขออนุญาต

เปลี่ยนเส้นทางผู้ใช้ไปยัง endpoint อนุญาต:

URL
https://auth.smartmoneyapi.com/authorize? client_id=YOUR_CLIENT_ID& redirect_uri=https://yourapp.com/callback& response_type=code& scope=whale_positions+funding_rates+liquidations& state=random_state_string

ขั้นตอนที่ 2: การแลกเปลี่ยน Token

หลังจากผู้ใช้ให้สิทธิ์แล้ว ให้แลกเปลี่ยนรหัสเป็น access token:

cURL
curl -X POST https://auth.smartmoneyapi.com/token \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "grant_type=authorization_code&code=AUTH_CODE&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET&redirect_uri=https://yourapp.com/callback"

การตอบสนอง OAuth Token

JSON
{ "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...", "token_type": "Bearer", "expires_in": 3600, "refresh_token": "rt_1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p", "scope": "whale_positions funding_rates liquidations" }

แนวทางปฏิบัติด้านความปลอดภัย

เก็บคีย์อย่างปลอดภัย

ห้ามใส่ API keys ในระบบควบคุมเวอร์ชัน เขียนโค้ดลงในแอปพลิเคชัน หรือแบ่งปันในเอกสาร ใช้ตัวแปรสภาพแวดล้อมหรือบริการจัดการคีย์ที่ปลอดภัยเช่น AWS Secrets Manager, HashiCorp Vault หรือที่คล้ายกัน

ใช้ HTTPS เท่านั้น

คำขอ API ทั้งหมดต้องใช้ HTTPS (TLS 1.2 หรือสูงกว่า) คำขอ HTTP จะถูกปฏิเสธ เพื่อให้แน่ใจว่า API key และข้อมูลของคุณถูกเข้ารหัสระหว่างการส่ง

จำกัดสิทธิ์คีย์

สร้าง API keys แยกสำหรับแอปพลิเคชันและสภาพแวดล้อมที่แตกต่างกัน ใช้ขอบเขตเพื่อจำกัดสิ่งที่แต่ละคีย์สามารถเข้าถึงได้ ห้ามใช้คีย์ production ใน development

ตรวจสอบการใช้งานคีย์

ตรวจสอบการใช้งาน API ในคอนโซลของคุณเป็นประจำ ตั้งค่าการแจ้งเตือนสำหรับกิจกรรมผิดปกติหรือโควต้าใกล้ถึงขีดจำกัด ลบคีย์ที่คุณไม่ได้ใช้งานแล้ว

การหมุนคีย์

หมุน API keys ของคุณเป็นประจำเพื่อลดความเสี่ยงจากการถูกโจมตี เราขอแนะนำให้หมุนคีย์ทุก 90 วัน:

  1. สร้าง API key ใหม่ในคอนโซลของคุณ
  2. อัปเดตแอปพลิเคชันของคุณเพื่อใช้คีย์ใหม่
  3. ทดสอบว่าทุกอย่างทำงานถูกต้อง
  4. ลบคีย์เก่าออกจากคอนโซลของคุณ

ขอบเขตและสิทธิ์

เมื่อสร้างคีย์ API หรือใช้ OAuth ระบุว่าคีย์ของคุณสามารถเข้าถึงทรัพยากรใดได้บ้าง:

ขอบเขต คำอธิบาย ระดับ
whale_positions อ่านตำแหน่งกระเป๋าเงินของวาฬ Trader+
funding_rates อ่านข้อมูลอัตราเงินทุน Free+
liquidations อ่านฟีดการล้างพอร์ต Free+
open_interest อ่านข้อมูลความสนใจเปิด Trader+
confirmation_scores อ่านคะแนนยืนยัน AI Pro+
on_chain อ่านเมตริกบนเชน Pro+

ตัวอย่างโค้ดการยืนยันตัวตน

การรวม Python แบบสมบูรณ์

Python
import requests from typing import Optional, Dict from datetime import datetime, timedelta class SmartMoneyAuth: """Handles all authentication methods for Smart Money API""" def __init__(self, api_key: str): self.api_key = api_key self.base_url = "https://api.smartmoneyapi.com" self.jwt_token = None self.jwt_expires = None def get_jwt_token(self) -> str: """Get or refresh JWT token""" if self.jwt_token and self.jwt_expires > datetime.now(): return self.jwt_token response = requests.post( f"{self.base_url}/auth/jwt", json={"api_key": self.api_key} ) data = response.json() self.jwt_token = data["token"] self.jwt_expires = datetime.now() + timedelta(seconds=data["expires_in"] - 300) return self.jwt_token def headers_bearer(self) -> Dict: """Get headers for Bearer token auth""" return { "Authorization": f"Bearer {self.api_key}", "Content-Type": "application/json" } def headers_jwt(self) -> Dict: """Get headers for JWT auth""" token = self.get_jwt_token() return { "Authorization": f"Bearer {token}", "Content-Type": "application/json" } def request(self, method: str, endpoint: str, use_jwt: bool = False, **kwargs) -> Dict: """Make authenticated request""" headers = self.headers_jwt() if use_jwt else self.headers_bearer() response = requests.request( method, f"{self.base_url}{endpoint}", headers=headers, **kwargs ) return response.json() # Usage auth = SmartMoneyAuth("sk_live_abc123xyz789") # Bearer token method whales = auth.request("GET", "/v1/whales/events?symbol=BTCUSDT") # JWT method (auto-refreshing) whales_jwt = auth.request("GET", "/v1/whales/events?symbol=BTCUSDT", use_jwt=True) print(f"Found {whales['data']['total']} whale positions")

ต้องการความช่วยเหลือ?

ตรวจสอบเอกสาร API ของเราหรือติดต่อฝ่ายสนับสนุนหากคุณต้องการความช่วยเหลือเกี่ยวกับการยืนยันตัวตน

เอกสารอ้างอิง API

สร้างคีย์ API ตัวแรกของคุณ

เริ่มต้นใช้งาน Smart Money API สร้างบัญชีและสร้างข้อมูลรับรองการยืนยันตัวตนได้ในไม่กี่นาที

ไปที่คอนโซล
เริ่มต้นฟรี - 100 ครั้ง/วัน ไม่ต้องใช้บัตร

รับข้อมูลการไหลของวาฬสด อัตราเงินทุน ความสนใจเปิด และข้อมูลบนเชนจาก 3 การแลกเปลี่ยนจาก API เดียว ระดับฟรี ไม่ต้องใช้บัตรเครดิต อัปเกรดได้ทุกเวลา

เริ่มต้นฟรี →
ลองใช้คอนโซล API สด → (ไม่จำเป็นต้องมีบัญชี)
รับคีย์ API ของคุณใน 30 วินาที

พร้อมสร้างแล้วหรือยัง? รับคีย์ API ฟรี (100 ครั้ง/วัน ไม่ต้องใช้บัตร) และเริ่มดึงข้อมูลวาฬสด อัตราเงินทุน และข้อมูลบนเชน

รับคีย์ API ของคุณ →