मुख्य सामग्री पर जाएँ
s.id Logo
Markdown देखें

प्रमाणीकरण

s.id API के साथ प्रमाणीकरण के दो तरीके, server-to-server के लिए API keys, उपयोगकर्ताओं की ओर से कार्य करने के लिए OAuth 2.0।

सर्वर-टू-सर्वर एक्सेस

API keys server-to-server integrations को authenticate करती हैं। Dashboard → Developer → API Keys में एक बनाएं, scopes चुनें और इसे Bearer token के रूप में पास करें।

दायरापहुँच
links:readलिंक सूचीबद्ध और पढ़ें
links:writeलिंक बनाएँ और अपडेट करें (बनाना, संपादित करना, पुनर्स्थापित करना)
links:archiveलिंक संग्रहित करें
links:analyticsप्रति लिंक क्लिक आँकड़े और आजीवन संख्या पढ़ें
qr:readQR कोड सेटिंग पढ़ें (ग्लोबल और प्रति लिंक)
qr:writeQR कोड सेटिंग कस्टमाइज़ करें (ग्लोबल और प्रति लिंक)
user:readप्रमाणित उपयोगकर्ता प्रोफ़ाइल और अकाउंट कोटा पढ़ें
microsites:readMicrosite पढ़ें
microsites:writeMicrosite कंपोनेंट बनाएँ, अपडेट करें और प्रबंधित करें
microsites:deleteMicrosite और उनके कंपोनेंट हटाएँ
bash
Authorization: Bearer sk_live_...
bash
curl https://api.s.id/v2/links \
  -H "Authorization: Bearer sk_live_..."
  • Keys sk_live_ से शुरू होती हैं और creation के समय केवल एक बार दिखाई जाती हैं।
  • केवल वही minimum scopes मांगें जो आपके integration को चाहिए।
  • compromise होने पर keys तुरंत revoke करें, नई बनाएं।
  • Client-side (browsers, mobile apps) पर API keys कभी expose न करें।

Authorization flow

सहमति के लिए उपयोगकर्ता को s.id पर रीडायरेक्ट करें, callback state सत्यापित करें, फिर एक बार उपयोग होने वाले कोड को access token और घूमते refresh token से बदलें।

  • अप्रत्याशित state मान बनाएँ, उसे उपयोगकर्ता सेशन में रखें और CSRF रोकने के लिए callback पर सटीक मिलान सत्यापित करें।
  • ऐसा redirect_uri उपयोग करें जो आपके OAuth ऐप के लिए पंजीकृत मान से पूरी तरह मेल खाता हो।

PKCE आवश्यक, client secret नहीं

SPA, मोबाइल ऐप और CLI के लिए। रैंडम code_verifier बनाएँ, authorize पर उसका S256 challenge भेजें, फिर token exchange के दौरान मूल verifier भेजें।

bash
https://api.s.id/oauth/authorize?
  response_type=code&
  client_id=YOUR_CLIENT_ID&
  redirect_uri=https%3A%2F%2Fapp.example.com%2Fcallback&
  scope=links%3Aread%20links%3Awrite&
  state=RANDOM_CSRF_VALUE&
  code_challenge=BASE64URL_SHA256_VERIFIER&
  code_challenge_method=S256
bash
curl -X POST https://api.s.id/oauth/token \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "grant_type=authorization_code" \
  -d "client_id=YOUR_CLIENT_ID" \
  -d "code=AUTHORIZATION_CODE" \
  -d "redirect_uri=https://app.example.com/callback" \
  -d "code_verifier=ORIGINAL_RANDOM_VERIFIER"

विश्वसनीय बैकएंड पर client secret

सर्वर-रेंडर या बैकएंड ऐप के लिए जो client_secret को गोपनीय रख सकते हैं। PKCE वैकल्पिक रहता है और अतिरिक्त सुरक्षा के लिए सुझाया जाता है।

bash
https://api.s.id/oauth/authorize?
  response_type=code&
  client_id=YOUR_CLIENT_ID&
  redirect_uri=https%3A%2F%2Fapp.example.com%2Fcallback&
  scope=links%3Aread%20links%3Awrite&
  state=RANDOM_CSRF_VALUE
bash
curl -X POST https://api.s.id/oauth/token \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "grant_type=authorization_code" \
  -d "client_id=YOUR_CLIENT_ID" \
  -d "client_secret=YOUR_CLIENT_SECRET" \
  -d "code=AUTHORIZATION_CODE" \
  -d "redirect_uri=https://app.example.com/callback"
एक्सेस टोकनविवरण
access_token1 घंटे बाद समाप्त होता है
refresh_token30 दिनों बाद समाप्त होता है
codeएक बार उपयोग; 10 मिनट बाद समाप्त
bash
curl -X POST https://api.s.id/oauth/token \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "grant_type=refresh_token" \
  -d "client_id=YOUR_CLIENT_ID" \
  -d "refresh_token=CURRENT_REFRESH_TOKEN"
bash
curl -X POST https://api.s.id/oauth/revoke \
  -H "Content-Type: application/json" \
  -d '{"token":"TOKEN_TO_REVOKE"}'
डिस्कवरी और टोकन ऑपरेशनविवरण
https://api.s.id/.well-known/oauth-authorization-serverRFC 8414 मेटाडेटा से endpoint URL, समर्थित स्कोप और PKCE विधियाँ खोजें।
POST /oauth/introspectगोपनीय संसाधन सर्वर जाँच सकते हैं कि टोकन सक्रिय है या नहीं और उसके स्कोप देख सकते हैं।
POST /oauth/revokeजब उपयोगकर्ता आपका इंटीग्रेशन डिस्कनेक्ट करे तब access token या refresh token रद्द करें।
GET /oauth/userinfouser:read वाले OAuth एक्सेस टोकन से जुड़ी प्रोफ़ाइल पढ़ें।

Developer Dashboard खोलें