ShareAI Platform Docs

PKCEで顧客を認証する

S256 PKCE を使用した ShareAI 認可コードフローを実装し、state を検証してコードをアプリケーションのバックエンドで交換します。

Markdownとして表示
このページについて

このフローは、1つの顧客アカウントをアプリケーションに接続します。顧客はサインインし、個人または組織アカウントを選択して、要求された権限を承認します。その後、バックエンドが短期間有効なコードをトークンに交換します。

始める前に#

完了 アプリケーション登録。正確に登録されたコールバック、サーバー保持のクライアント資格情報、および認可を完了するブラウザ用のサーバーサイドセッションが必要です。

1. 認可リクエストを作成する#

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

顧客にアプリケーションの認可を求めてください。

ベースURL
https://auth.shareai.now
認証
ブラウザリダイレクト; 登録済みアプリケーション

各試行ごとに新しい verifier、state、nonce を生成します。それらを開始ユーザーのサーバーサイドセッションに保存します。SHA-256 チャレンジをブラウザリダイレクトで送信し、verifier は送信しないでください。アプリケーションが必要とするスコープのみをリクエストしてください。

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. コールバックを検証する#

認可が拒否された場合、OAuth エラーを通常のキャンセルとして処理してください。それ以外の場合は、コードを使用する前に返された state 値を保存された値と比較してください。state が欠落しているか一致しない場合は拒否してください。保存された state は一度だけ使用し、別のブラウザセッションから送信されたコールバック URL は受け入れないでください。

3. コードを交換する#

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

一度だけ使用可能なコードと一致する PKCE verifier を交換します。

ベース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"

クライアントに設定されたクライアント認証方法を使用してください。この例ではフォームベースのクライアント認証を使用しています。同じコードを2回送信しないでください。消費済みまたは期限切れのコードの後は、認可を再開始してください。

4. 結果を保存し、アプリのセッションを確立する#

アクセストークンとリフレッシュトークンをバックエンドに保存します。返された expires_in トークンを使用し、永続的なトークンを仮定しないでください。ID トークンを使用する場合は、発行者の JWKS、期待される発行者、クライアントオーディエンス、有効期限、および元の nonce を使用して署名を検証し、クレームを信頼する前に確認してください。

ライフサイクルを続行する#

リフレッシュとローテーション · スコープとアカウントのアイデンティティ · OAuth チャットリクエスト

最終更新日 2026年9月15日

ShareAIプラットフォームドキュメント
すべてのドキュメント

タイトルまたは内容で検索してください。

このページについて質問する

このページを探索するためのアシスタントを選択してください。または、ページをコピーして会話に貼り付けることもできます。

Ask ChatGPTAsk ClaudeAsk GrokAsk ShareAI