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