डेवलपर गाइड
OAuth 2.0 Client Credentials
मानक Client Credentials प्रवाह (RFC 6749 §4.4) से बिना उपयोगकर्ता सेशन के सर्वर-साइड एकीकरण प्रमाणित करें।
अवलोकन
Client Credentials अनुदान उन सर्वर-से-सर्वर एकीकरणों के लिए है जहां कोई व्यक्ति मौजूद नहीं होता: CI पाइपलाइन, cron जॉब, बैकएंड सेवाएं और SaaS प्लेटफ़ॉर्म एकीकरण। आपका एप्लिकेशन client_id / client_secret जोड़ी को अल्पकालिक Bearer एक्सेस टोकन से बदलता है।
टोकन एंडपॉइंट
POST https://pollslive.com/api/oauth/tokenटोकन अवधि
3600 सेकंड (1 घंटा)आवश्यक प्लान
कोई भी सशुल्क प्लान (Pro और उससे ऊपर)OAuth बनाम API कुंजियां कब चुनें
| परिदृश्य | अनुशंसित क्रेडेंशियल |
|---|---|
| व्यक्तिगत स्वचालन / स्क्रिप्ट | API कुंजी |
| आंतरिक सर्वर प्रक्रिया, एक वर्कस्पेस | API कुंजी |
| कई ग्राहकों के लिए PollsLive एकीकृत करने वाला SaaS उत्पाद | प्रति ग्राहक वर्कस्पेस OAuth Client Credentials |
| बिना डाउनटाइम ज़ीरो-ट्रस्ट रोटेशन | OAuth (टोकन अपने आप समाप्त होते हैं) या API कुंजी रोटेशन |
| स्कोप-सीमित तृतीय-पक्ष पहुंच | स्कोप के साथ OAuth |
1. OAuth क्लाइंट बनाएं
Studio → डेवलपर API → OAuth 2.0 क्लाइंट पर जाएं और OAuth क्लाइंट बनाएं पर क्लिक करें। क्लाइंट को स्पष्ट नाम दें और चाहें तो स्कोप सीमित करें।
clientSecret तुरंत सहेजें। API कुंजी की तरह यह ठीक एक बार दिखाया जाता है और कभी सादे पाठ में संग्रहीत नहीं होता।2. एक्सेस टोकन प्राप्त करें
टोकन एंडपॉइंट पर application/x-www-form-urlencoded (RFC मानक) या application/json (सुविधा के लिए) के साथ POST अनुरोध भेजें:
curl -X POST https://pollslive.com/api/oauth/token \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=client_credentials&client_id=plv_cid_…&client_secret=plv_cs_…&scope=polls:read polls:write"curl -X POST https://pollslive.com/api/oauth/token \
-H "Content-Type: application/json" \
-d '{
"grant_type": "client_credentials",
"client_id": "plv_cid_…",
"client_secret": "plv_cs_…",
"scope": "polls:read polls:write"
}'{
"access_token": "plv_oauth_…",
"token_type": "Bearer",
"expires_in": 3600,
"scope": "polls:read polls:write"
}त्रुटियां RFC 6749 §5.2 प्रारूप का पालन करती हैं। { "error": "invalid_client", "error_description": "…" }
3. टोकन का उपयोग करें
हर API अनुरोध में access_token को Bearer टोकन के रूप में शामिल करें, बिल्कुल API कुंजी की तरह:
curl https://pollslive.com/api/v1/polls \
-H "Authorization: Bearer plv_oauth_…"आपके एप्लिकेशन को टोकन कैश करना चाहिए और तभी नया मांगना चाहिए जब expires_in नज़दीक आ रहा हो (जैसे 5 मिनट से कम बचने पर)।
टोकन अवधि और नवीनीकरण
टोकन 1 घंटे तक मान्य हैं (expires_in: 3600)। कोई रिफ़्रेश टोकन नहीं है। मौजूदा समाप्त होने पर बस अपने क्लाइंट क्रेडेंशियल से नया मांग लें। चूंकि यह सर्वर-साइड प्रवाह है, क्लाइंट सीक्रेट कभी आपके बैकएंड से बाहर नहीं जाता।
let token = null;
let expiresAt = 0;
async function getToken() {
if (token && Date.now() < expiresAt - 5 * 60 * 1000) return token;
const res = await fetch("https://pollslive.com/api/oauth/token", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
grant_type: "client_credentials",
client_id: process.env.OAUTH_CLIENT_ID,
client_secret: process.env.OAUTH_CLIENT_SECRET,
}),
});
const data = await res.json();
token = data.access_token;
expiresAt = Date.now() + data.expires_in * 1000;
return token;
}स्कोप
स्कोप से आप सीमित करते हैं कि कोई OAuth क्लाइंट क्या कर सकता है। क्लाइंट बनाते समय कोई स्कोप न दें तो उसे पूरी वर्कस्पेस पहुंच मिलती है (API कुंजी के बराबर)।
पूरी सूची के लिए स्कोप संदर्भिका देखें।
क्लाइंट रद्द करें
क्लाइंट रद्द करते ही उसके लिए जारी सभी टोकन तुरंत अमान्य हो जाते हैं। टोकन का उपयोग कर रहे चालू अनुरोध 401 invalid_oauth_token के साथ विफल होंगे।
Studio → डेवलपर API → OAuth 2.0 क्लाइंट पर जाकर रद्द करें पर क्लिक करें।
अभी भी कोई सवाल है?
हमारी टीम मदद करने में खुश होगी।