PKCE के साथ ग्राहक को अधिकृत करें
S256 PKCE के साथ ShareAI ऑथराइजेशन-कोड फ्लो को लागू करें, स्टेट को सत्यापित करें और कोड को अपने एप्लिकेशन बैकएंड पर एक्सचेंज करें।
इस पेज पर
यह फ्लो एक ग्राहक खाते को आपके एप्लिकेशन से जोड़ता है। ग्राहक साइन इन करता है, व्यक्तिगत या संगठन खाता चुनता है और अनुरोधित अनुमतियों को स्वीकृति देता है। इसके बाद आपका बैकएंड शॉर्ट-लिव्ड कोड को टोकन के लिए एक्सचेंज करता है।
शुरू करने से पहले#
पूर्ण एप्लिकेशन पंजीकरण. आपको एक सटीक पंजीकृत कॉलबैक, सर्वर-हेल्ड क्लाइंट क्रेडेंशियल्स और ब्राउज़र ऑथराइजेशन पूरा करने के लिए एक सर्वर-साइड सेशन की आवश्यकता है।
1. ऑथराइजेशन अनुरोध बनाएं#
https://auth.shareai.now/oauth/authorizeग्राहक से एप्लिकेशन को ऑथराइज करने के लिए कहें।
- बेस URL
https://auth.shareai.now- प्रमाणीकरण
- ब्राउज़र रीडायरेक्ट; पंजीकृत एप्लिकेशन
प्रत्येक प्रयास के लिए एक नया वेरिफायर, स्टेट और नॉन्स जनरेट करें। इन्हें प्रारंभिक उपयोगकर्ता के सर्वर-साइड सेशन में स्टोर करें। ब्राउज़र रीडायरेक्ट में SHA-256 चैलेंज भेजें, कभी भी वेरिफायर नहीं। केवल वही स्कोप्स अनुरोध करें जो आपके एप्लिकेशन को चाहिए।
Python
import base64
import hashlib
import secrets
import urllib.parse
verifier = secrets.token_urlsafe(48)
challenge = base64.urlsafe_b64encode(hashlib.sha256(verifier.encode()).digest()).rstrip(b"=").decode()
state = secrets.token_urlsafe(32)
nonce = secrets.token_urlsafe(32)
# Store verifier, state and nonce in the user's server-side session.
params = {
"response_type": "code",
"client_id": "YOUR_CLIENT_ID",
"redirect_uri": "https://app.example.com/auth/shareai/callback",
"scope": "openid profile surcharge",
"state": state,
"nonce": nonce,
"code_challenge": challenge,
"code_challenge_method": "S256",
}
print("https://auth.shareai.now/oauth/authorize?" + urllib.parse.urlencode(params))
TypeScript
import { randomBytes, createHash } from "node:crypto";
const verifier = randomBytes(48).toString("base64url");
const state = randomBytes(32).toString("base64url");
const nonce = randomBytes(32).toString("base64url");
const challenge = createHash("sha256").update(verifier).digest("base64url");
// Save verifier, state and nonce in the initiating server-side session.
const params = new URLSearchParams({ response_type: "code", client_id: "YOUR_CLIENT_ID",
redirect_uri: "https://app.example.com/auth/shareai/callback",
scope: "openid profile surcharge", state, nonce,
code_challenge: challenge, code_challenge_method: "S256" });
const authorizationUrl = `https://auth.shareai.now/oauth/authorize?${params}`;
// Redirect the browser to authorizationUrl.
2. कॉलबैक को सत्यापित करें#
यदि ऑथराइजेशन अस्वीकृत है, तो OAuth त्रुटि को सामान्य रद्दीकरण के रूप में संभालें। अन्यथा, उपयोग करने से पहले लौटाए गए state को सहेजे गए मान से तुलना करें। गुम या असंगत स्टेट को अस्वीकार करें। सहेजे गए स्टेट को केवल एक बार उपयोग करें; किसी अन्य ब्राउज़र सेशन द्वारा सबमिट किए गए कॉलबैक URLs को स्वीकार न करें।
3. कोड एक्सचेंज करें#
https://auth.shareai.now/oauth/tokenएक बार उपयोग किए जाने वाले कोड और मिलते-जुलते PKCE वेरिफायर का एक्सचेंज करें।
- बेस URL
https://auth.shareai.now- प्रमाणीकरण
- गोपनीय क्लाइंट प्रमाणीकरण
cURL
curl --fail-with-body "https://auth.shareai.now/oauth/token" \
-H "Content-Type: application/x-www-form-urlencoded" \
--data-urlencode "grant_type=authorization_code" \
--data-urlencode "client_id=$SHAREAI_CLIENT_ID" \
--data-urlencode "client_secret=$SHAREAI_CLIENT_SECRET" \
--data-urlencode "code=$AUTHORIZATION_CODE" \
--data-urlencode "redirect_uri=https://app.example.com/auth/shareai/callback" \
--data-urlencode "code_verifier=$PKCE_VERIFIER"
क्लाइंट के लिए कॉन्फ़िगर की गई क्लाइंट प्रमाणीकरण विधि का उपयोग करें। उदाहरण फॉर्म-आधारित क्लाइंट प्रमाणीकरण का उपयोग करता है। एक ही कोड को दो बार न भेजें; उपयोग किए गए या समाप्त कोड के बाद ऑथराइजेशन फिर से शुरू करें।
4. परिणाम को स्टोर करें और अपने ऐप सेशन को स्थापित करें#
एक्सेस और रिफ्रेश टोकन को अपने बैकएंड में स्टोर करें। लौटाए गए expires_in का उपयोग करें बजाय इसके कि स्थायी टोकन मान लें। यदि आप ID टोकन का उपयोग करते हैं, तो इसके दावों पर भरोसा करने से पहले इसके हस्ताक्षर को जारीकर्ता के JWKS, अपेक्षित जारीकर्ता, क्लाइंट ऑडियंस, समाप्ति और आपके मूल नॉन्स के साथ सत्यापित करें।
जीवनचक्र जारी रखें#
रिफ्रेश और रोटेशन · स्कोप्स और खाता पहचान · OAuth चैट अनुरोध
अंतिम अपडेट सितम्बर 15, 2026