تصدیق گائیڈ
API کلیدز، JWT ٹوکنز، اور OAuth 2.0 کا استعمال کرتے ہوئے Smart Money API کے ساتھ تصدیق کرنے کا طریقہ سیکھیں۔ صنعت کے معیاری تصدیق کے طریقوں اور بہترین طریقوں کے ساتھ اپنے انٹیگریشنز کو محفوظ بنائیں۔
جائزہ
Smart Money API مختلف استعمال کے معاملات کے لیے متعدد تصدیق کے طریقوں کو سپورٹ کرتا ہے۔ اپنے انٹیگریشن کے لیے بہترین طریقہ منتخب کریں:
API کلیدز (پرائمری): اپنی کلید کو X-API-Key درخواست ہیڈر میں تمام REST API کالز کے لیے بھیجیں۔ یہ بوٹس اور سرور-ٹو-سرور استعمال کے لیے تجویز کردہ طریقہ ہے۔
سیشن JWT (فال بیک): براؤزر/ڈیش بورڈ سیشنز ایک سیشن JWT کے ذریعے تصدیق کرتے ہیں Authorization: Bearer, جو 24 گھنٹوں کے لیے درست ہے۔ پروگرامٹک کلائنٹس کو ترجیح دینی چاہیے X-API-Key.
OAuth 2.0: ملٹی یوزر ایپلیکیشنز اور تھرڈ پارٹی انٹیگریشنز کے لیے انٹرپرائز-گریڈ تصدیق۔ صارفین آپ کی ایپ کو ان کے ڈیٹا تک رسائی کی اجازت دیتے ہیں۔
تمام API درخواستیں HTTPS پر کی جانی چاہئیں۔ غیر محفوظ HTTP درخواستیں مسترد کر دی جائیں گی۔ مزید برآں، API کلیدز کو ورژن کنٹرول میں کبھی بھی شامل نہ کریں یا انہیں عوامی طور پر شیئر نہ کریں۔
API کلیدز
API کلیدز آپ کے اکاؤنٹ کے لیے جاری کردہ منفرد کریڈنشلز ہیں۔ ہر کلید ایک سیٹ اجازتوں اور کوٹا کی نمائندگی کرتی ہے۔ آپ مختلف ایپلیکیشنز یا ماحول (ڈویلپمنٹ، اسٹیجنگ، پروڈکشن) کے لیے متعدد کلیدز جنریٹ کر سکتے ہیں۔
API کلید جنریٹ کرنا
اپنے اکاؤنٹ کنسول سے API کلیدز جنریٹ کریں:
- نیویگیٹ کریں Smart Money Console
- سائیڈبار سے "API کلیدز" منتخب کریں
- "نیا کلید جنریٹ کریں" پر کلک کریں
- کلید کی قسم منتخب کریں (ڈویلپمنٹ، اسٹیجنگ، پروڈکشن)
- ریٹ لیمٹ اور فیچرز سیٹ کریں
- کلید کو کاپی کریں اور محفوظ طریقے سے اسٹور کریں
اپنی API کلید فوراً محفوظ کر لیں! آپ اسے دوبارہ نہیں دیکھ سکیں گے۔ اگر آپ اسے کھو دیتے ہیں، تو آپ کو ایک نئی کلید جنریٹ کرنی ہوگی۔
کلید کی شکل
API کلیدز ایک معیاری شکل کی پیروی کرتی ہیں:
sk_live_4e3e4d0f1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5z
sk_test_8f4g5h6i7j8k9l0m1n2o3p4q5r6s7t8u9v0w1x2y3z4a5b6c7d8e9f
sk_dev_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5z6a7b
کلید کے پریفکسز ماحول کی نشاندہی کرتے ہیں:
sk_live_ — پروڈکشن کلیدز مکمل کوٹا کے ساتھ
sk_test_ — ٹیسٹنگ کلیدز کم کوٹا اور ڈویلپمنٹ ڈیٹا کے ساتھ
sk_dev_ — ذاتی ڈویلپمنٹ کلیدز سینڈ باکس ڈیٹا کے ساتھ
X-API-Key ہیڈر (پرائمری)
تمام API درخواستوں کے لیے اپنی API کلید کو X-API-Key درخواست ہیڈر میں بھیجیں۔ اپنی کلید کو کبھی بھی URL میں نہ رکھیں۔
HTTP ہیڈر
GET /v1/whales/events HTTP/1.1
Host: api.smartmoneyapi.com
X-API-Key: sm_your_key
Content-Type: application/json
cURL مثال
curl -X GET https://api.smartmoneyapi.com/v1/whales/events \
-H "X-API-Key: sm_your_key" \
-H "Content-Type: application/json"
پائتھن مثال
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 ٹوکن تصدیق
لمبے عرصے تک چلنے والے سیشنز اور سرور-ٹو-سرور مواصلات کے لیے، اپنی API کلید کو JWT ٹوکن کے بدلے میں تبدیل کریں۔ JWT ٹوکنز 24 گھنٹوں تک چلتے ہیں اور آپ کی API کلید کو ایپلیکیشن کوڈ میں اسٹور کرنے کی ضرورت کو کم کرتے ہیں۔
JWT ٹوکن حاصل کرنا
JWT ٹوکن حاصل کرنے کے لیے اپنی API کلید کو JWT اینڈ پوائنٹ پر POST کریں:
curl -X POST https://api.smartmoneyapi.com/auth/jwt \
-H "Content-Type: application/json" \
-d '{
"api_key": "sk_live_4e3e4d0f1b2c3d4e5f6g7h8i9j0k1l2m"
}'
JWT جواب
{
"success": true,
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c",
"expires_in": 86400,
"token_type": "Bearer"
}
JWT ٹوکن کا استعمال
JWT ٹوکن کو Authorization ہیڈر میں API کلیدز کی طرح استعمال کریں:
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):
# چیک کریں کہ موجودہ ٹوکن اب بھی درست ہے
if self.token and self.token_expires > datetime.now():
return self.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)
# استعمال
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 کلیدز شیئر کیے بغیر ان کے ڈیٹا تک رسائی کی اجازت دیتے ہیں۔
OAuth 2.0 فلو
Smart Money API ویب ایپلیکیشنز کے لیے Authorization Code فلو کو سپورٹ کرتا ہے:
- صارف "Smart Money کے ساتھ کنیکٹ کریں" بٹن پر کلک کرتا ہے
- براؤزر اتھارائزیشن پیج پر ری ڈائریکٹ ہوتا ہے
- صارف آپ کی ایپلیکیشن کو اجازت دیتا ہے
- براؤزر اتھارائزیشن کوڈ کے ساتھ واپس ری ڈائریکٹ ہوتا ہے
- آپ کا بیک اینڈ کوڈ کو ایکسیس ٹوکن کے بدلے میں تبدیل کرتا ہے
- اب آپ صارف کے ڈیٹا تک ان کی جانب سے رسائی حاصل کر سکتے ہیں
مرحلہ 1: اتھارائزیشن درخواست
صارف کو اتھارائزیشن اینڈ پوائنٹ پر ری ڈائریکٹ کریں:
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: ٹوکن ایکسچینج
صارف کی اجازت کے بعد، کوڈ کو ایکسیس ٹوکن کے بدلے میں تبدیل کریں:
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 ٹوکن جواب
{
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"token_type": "Bearer",
"expires_in": 3600,
"refresh_token": "rt_1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p",
"scope": "whale_positions funding_rates liquidations"
}
سیکورٹی کے بہترین طریقے
کلیدز کو محفوظ طریقے سے اسٹور کریں
API کلیدز کو کبھی بھی ورژن کنٹرول میں شامل نہ کریں، انہیں ایپلیکیشنز میں ہارڈ کوڈ نہ کریں، یا دستاویزات میں شیئر نہ کریں۔ ماحولیاتی متغیرات یا محفوظ کلید مینجمنٹ سروسز جیسے AWS Secrets Manager، HashiCorp Vault، یا اس جیسے استعمال کریں۔
صرف HTTPS استعمال کریں
تمام API درخواستوں کو HTTPS (TLS 1.2 یا اس سے زیادہ) استعمال کرنا چاہیے۔ HTTP درخواستیں مسترد کر دی جائیں گی۔ یہ یقینی بناتا ہے کہ آپ کی API کلید اور ڈیٹا ٹرانزٹ میں انکرپٹ ہوں۔
کلید کی اجازتوں کو محدود کریں
مختلف ایپلیکیشنز اور ماحول کے لیے الگ الگ API کلیدز بنائیں۔ اسکوپس کا استعمال کرتے ہوئے ہر کلید کی رسائی کو محدود کریں۔ ڈویلپمنٹ میں پروڈکشن کلیدز استعمال نہ کریں۔
کلید کے استعمال کی نگرانی کریں
اپنے کنسول میں API کے استعمال کا باقاعدگی سے جائزہ لیں۔ غیر معمولی سرگرمی یا کوٹا کی حد تک پہنچنے کے لیے الرٹس سیٹ کریں۔ ان کلیدز کو حذف کریں جو آپ اب استعمال نہیں کر رہے ہیں۔
کلید کی تبدیلی
اپنی API کلیدز کو باقاعدگی سے تبدیل کریں تاکہ سمجھوتے کے خطرے کو کم کیا جا سکے۔ ہم ہر 90 دن میں کلیدز کو تبدیل کرنے کی سفارش کرتے ہیں:
- اپنے کنسول میں ایک نئی API کلید جنریٹ کریں
- اپنی ایپلی کیشنز کو نئے کلید استعمال کرنے کے لیے اپ ڈیٹ کریں
- جانچیں کہ سب کچھ صحیح طریقے سے کام کر رہا ہے
- اپنے کنسول سے پرانا کلید حذف کریں
اسکوپس اور اجازتیں
جب API کلیدز بناتے ہیں یا OAuth استعمال کرتے ہیں، تو واضح کریں کہ آپ کا کلید کن وسائل تک رسائی حاصل کر سکتا ہے:
| اسکوپ |
تفصیل |
ٹیئر |
| whale_positions |
وہیل والیٹ پوزیشنز پڑھیں |
Trader+ |
| funding_rates |
فنڈنگ ریٹ ڈیٹا پڑھیں |
Free+ |
| liquidations |
لیکویڈیشن فیڈز پڑھیں |
Free+ |
| open_interest |
اوپن انٹرسٹ ڈیٹا پڑھیں |
Trader+ |
| confirmation_scores |
AI تصدیقی اسکورز پڑھیں |
Pro+ |
| on_chain |
آن چین میٹرکس پڑھیں |
Pro+ |
تصدیق کے کوڈ مثالیں
مکمل پائتھن انٹیگریشن
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 کے ساتھ شروع کریں۔ اپنا اکاؤنٹ بنائیں اور منٹوں میں تصدیق کی اسناد تیار کریں۔
کنسول پر جائیں