ShareAI Platform Docs

Pahintulutan ang isang customer gamit ang PKCE

Ipatupad ang ShareAI authorization-code flow gamit ang S256 PKCE, beripikahin ang estado at palitan ang code sa backend ng iyong aplikasyon.

Tingnan bilang Markdown
Sa pahinang ito

Ang flow na ito ay nagkokonekta ng isang customer account sa iyong aplikasyon. Ang customer ay mag-sign in, pipili ng personal o organisasyon na account at aprubahan ang mga hinihinging pahintulot. Ang iyong backend ay papalitan ang panandaliang code para sa mga token.

Bago ka magsimula#

Kumpleto rehistrasyon ng aplikasyon. Kailangan mo ng eksaktong rehistradong callback, server-held client credentials at isang server-side session para sa browser na kumukumpleto ng authorization.

1. Lumikha ng authorization request#

GET https://auth.shareai.now/oauth/authorize

Hilingin sa customer na i-authorize ang aplikasyon.

Base URL
https://auth.shareai.now
Pagpapatunay
Browser redirect; rehistradong aplikasyon

Bumuo ng sariwang verifier, estado at nonce para sa bawat pagtatangka. Iimbak ang mga ito sa server-side session ng user na nagpasimula. Ipadala ang SHA-256 challenge, huwag kailanman ang verifier, sa browser redirect. Humiling lamang ng mga scope na kailangan ng iyong aplikasyon.

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))

2. Beripikahin ang callback#

Kung tinanggihan ang authorization, hawakan ang OAuth error bilang normal na pagkansela. Kung hindi, ihambing ang ibinalik state sa nakaimbak na halaga bago gamitin ang code. Tanggihan ang nawawala o hindi tugmang estado. Gamitin ang nakaimbak na estado nang isang beses; huwag tanggapin ang callback URLs na isinumite ng ibang browser session.

3. Palitan ang code#

POST https://auth.shareai.now/oauth/token

Palitan ang isang beses na code at ang tumutugmang PKCE verifier.

Base URL
https://auth.shareai.now
Pagpapatunay
Kumpidensyal na pagpapatunay ng kliyente

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"

Gamitin ang paraan ng pagpapatunay ng kliyente na naka-configure para sa kliyente. Ang halimbawa ay gumagamit ng form-based na pagpapatunay ng kliyente. Huwag ipadala ang parehong code nang dalawang beses; simulan muli ang authorization pagkatapos ng nagamit o nag-expire na code.

4. Iimbak ang resulta at itatag ang session ng iyong app#

Iimbak ang access at refresh tokens sa iyong backend. Gamitin ang ibinalik expires_in sa halip na ipagpalagay ang permanenteng token. Kung gagamit ka ng ID token, beripikahin ang lagda nito gamit ang JWKS ng issuer, inaasahang issuer, client audience, expiry at ang iyong orihinal na nonce bago pagkatiwalaan ang mga claim.

Ipagpatuloy ang lifecycle#

Refresh at rotation · Mga scope at pagkakakilanlan ng account · Mga kahilingan sa OAuth chat

Huling na-update noong Setyembre 15, 2026

ShareAI Platform Docs
Lahat ng dokumentasyon

Maghanap ayon sa pamagat o nilalaman.

Magtanong tungkol sa pahinang ito

Pumili ng assistant upang tuklasin ang pahinang ito. Maaari mo ring kopyahin ang pahina at i-paste ito sa iyong usapan.

Ask ChatGPTAsk ClaudeAsk GrokAsk ShareAI