ShareAI Platform Docs

Ủy quyền khách hàng với PKCE

Triển khai luồng mã ủy quyền ShareAI với S256 PKCE, xác minh trạng thái và trao đổi mã trên backend ứng dụng của bạn.

Xem dưới dạng Markdown
Trên trang này

Luồng này kết nối một tài khoản khách hàng với ứng dụng của bạn. Khách hàng đăng nhập, chọn tài khoản cá nhân hoặc tổ chức và phê duyệt các quyền được yêu cầu. Backend của bạn sau đó trao đổi mã ngắn hạn để lấy token.

Trước khi bạn bắt đầu#

Hoàn tất đăng ký ứng dụng. Bạn cần một callback đã đăng ký chính xác, thông tin xác thực của máy khách được lưu trữ trên máy chủ và một phiên phía máy chủ cho trình duyệt hoàn tất ủy quyền.

1. Tạo yêu cầu ủy quyền#

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

Yêu cầu khách hàng ủy quyền ứng dụng.

URL cơ sở
https://auth.shareai.now
Xác thực
Chuyển hướng trình duyệt; ứng dụng đã đăng ký

Tạo một mã xác minh, trạng thái và nonce mới cho mỗi lần thử. Lưu trữ chúng trong phiên phía máy chủ của người dùng khởi tạo. Gửi thử thách SHA-256, không bao giờ gửi mã xác minh, trong chuyển hướng trình duyệt. Chỉ yêu cầu các phạm vi mà ứng dụng của bạn cần.

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. Xác thực callback#

Nếu ủy quyền bị từ chối, xử lý lỗi OAuth như một hủy bỏ thông thường. Nếu không, so sánh giá trị trả về state với giá trị đã lưu trước khi sử dụng mã. Từ chối trạng thái bị thiếu hoặc không khớp. Sử dụng trạng thái đã lưu một lần; không chấp nhận URL callback được gửi bởi một phiên trình duyệt khác.

3. Trao đổi mã#

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

Trao đổi mã sử dụng một lần và mã xác minh PKCE tương ứng.

URL cơ sở
https://auth.shareai.now
Xác thực
Xác thực máy khách bảo mật

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"

Sử dụng phương pháp xác thực máy khách được cấu hình cho máy khách. Ví dụ sử dụng xác thực máy khách dựa trên biểu mẫu. Không gửi cùng một mã hai lần; bắt đầu ủy quyền lại sau khi mã đã được sử dụng hoặc hết hạn.

4. Lưu trữ kết quả và thiết lập phiên ứng dụng của bạn#

Lưu trữ token truy cập và làm mới trong backend của bạn. Sử dụng giá trị trả về expires_in thay vì giả định một token vĩnh viễn. Nếu bạn sử dụng token ID, hãy xác thực chữ ký của nó với JWKS của nhà phát hành, nhà phát hành dự kiến, đối tượng máy khách, thời hạn và nonce gốc của bạn trước khi tin tưởng vào các tuyên bố.

Tiếp tục vòng đời#

Làm mới và xoay vòng · Phạm vi và danh tính tài khoản · Yêu cầu trò chuyện OAuth

Cập nhật lần cuối Tháng 9 15, 2026

Tài liệu Nền tảng ShareAI
Tất cả tài liệu

Tìm kiếm theo tiêu đề hoặc nội dung.

Hỏi về trang này

Chọn một trợ lý để khám phá trang này. Bạn cũng có thể sao chép trang và dán vào cuộc trò chuyện của mình.

Ask ChatGPTAsk ClaudeAsk GrokAsk ShareAI