Skip to main content

認證

Copilot SDK 支援多種認證方式。請依用途選擇。

認證方式

關於 BYOK 請參考 Custom providers。

GitHub 登入(CLI)

若 copilot 或 gh CLI 已登入,且未指定其他選項,將使用已儲存的認證資訊。

OAuth GitHub App / PAT

將透過 OAuth 流程取得的使用者 access token 或 Fine-grained PAT 傳入 github_token。
  • 預期為 gho_ / ghu_ / github_pat_
  • 不建議使用 ghp_(Classic PAT)
指定 github_token 時 use_logged_in_user 會自動變為 false。若想明確切換,可如下設定。
詳情請參考 GitHub token。 github_token 與 use_logged_in_user 僅於 stdio 模式可用。TCP 模式下需在 Copilot CLI 端已完成認證。

環境變數

透過環境變數傳遞 token 時,CLI 會自動偵測。優先順序由上而下:
  1. COPILOT_GITHUB_TOKEN
  2. GH_TOKEN
  3. GITHUB_TOKEN
TCP 模式時,請於 CLI 伺服器端設定環境變數。

認證的優先順序

SDK 會依下列順序解析認證資訊。
  1. github_token(明確指定)
  2. 環境變數 token(COPILOT_GITHUB_TOKEN → GH_TOKEN → GITHUB_TOKEN)
  3. CLI 中已儲存的 OAuth 認證資訊
  4. gh CLI 的認證資訊

停用自動登入

若不希望使用已儲存的認證資訊,可將 use_logged_in_user 設為 false。
與 github_token 相同,僅支援 stdio 模式。TCP 模式下需在 Copilot CLI 端已完成認證。

確認認證狀態

可透過取得 auth.getStatus 的結果來確認。

為互動式登入選擇帳戶

透過 session RPC 列舉 loginAccounts,即可取得可在指定 provider 重複使用的已儲存身分。每個項目的 label 用於顯示,active 表示該身分是否與目前 session 的使用中帳戶相符。accountId 是由 provider 擁有的不透明 ID。請勿解析或修改,直接原樣傳給登入請求。
使用 mode: 'default' 可依 provider 的一般行為重複使用已儲存的身分。使用 mode: 'selectAccount' 則會明確顯示 provider 的帳戶選擇器,此時請勿傳入 accountId。begin(LoginProviderKind::ENTRA) 等既有呼叫方式仍可繼續使用。
最新資訊請參考 GitHub 儲存庫。
最後修改於 2026年10月19日