ShareAI Platform Docs

Autorizează un client cu PKCE

Implementează fluxul de cod de autorizare ShareAI cu S256 PKCE, verifică starea și schimbă codul pe backend-ul aplicației tale.

Vizualizează ca Markdown
Pe această pagină

Acest flux conectează un cont de client la aplicația ta. Clientul se autentifică, alege un cont personal sau de organizație și aprobă permisiunile solicitate. Backend-ul tău schimbă apoi codul temporar cu token-uri.

Înainte de a începe#

Completează înregistrarea aplicației. Ai nevoie de un callback înregistrat exact, acreditivele clientului stocate pe server și o sesiune pe partea de server pentru browserul care finalizează autorizarea.

1. Creează cererea de autorizare#

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

Cere clientului să autorizeze aplicația.

URL de bază
https://auth.shareai.now
Autentificare
Redirecționare browser; aplicație înregistrată

Generează un verificator nou, o stare și un nonce pentru fiecare încercare. Stochează-le în sesiunea pe partea de server a utilizatorului care inițiază. Trimite provocarea SHA-256, niciodată verificatorul, în redirecționarea browserului. Solicită doar permisiunile de care aplicația ta are nevoie.

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. Validează callback-ul#

Dacă autorizarea este refuzată, tratează eroarea OAuth ca pe o anulare normală. În caz contrar, compară state cu valoarea salvată înainte de a folosi codul. Respinge o stare lipsă sau care nu se potrivește. Consumă starea salvată o singură dată; nu accepta URL-uri de callback trimise de o altă sesiune de browser.

3. Schimbă codul#

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

Schimbă un cod de unică folosință și verificatorul PKCE corespunzător.

URL de bază
https://auth.shareai.now
Autentificare
Autentificare client confidențial

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"

Utilizează metoda de autentificare a clientului configurată pentru client. Exemplul folosește autentificarea clientului bazată pe formular. Nu trimite același cod de două ori; începe din nou autorizarea după un cod consumat sau expirat.

4. Stochează rezultatul și stabilește sesiunea aplicației tale#

Stochează token-urile de acces și reîmprospătare în backend-ul tău. Utilizează expires_in returnat în loc să presupui un token permanent. Dacă folosești un ID token, validează semnătura acestuia cu JWKS-ul emitentului, emitentul așteptat, audiența clientului, expirarea și nonce-ul original înainte de a avea încredere în revendicări.

Continuă ciclul de viață#

Reîmprospătare și rotație · Scopuri și identitatea contului · Cereri de chat OAuth

Ultima actualizare: 15 septembrie 2026

Documentația platformei ShareAI
Toată documentația

Caută după titlu sau conținut.

Întreabă despre această pagină

Alege un asistent pentru a explora această pagină. Poți, de asemenea, să copiezi pagina și să o inserezi în conversația ta.

Ask ChatGPTAsk ClaudeAsk GrokAsk ShareAI