跳到正文
FunCoding

搜索

搜索文档、Skill 和 MCP

SDK 认证与优先级

选择用户身份、环境令牌、组织身份或 BYOK,并避免意外回退到本机登录。

认证方式决定请求使用哪个身份和用量归属。SDK 可以使用个人 Copilot 身份、组织自动化身份,或直接访问自有模型提供方。

选择方式

方式使用场景Copilot 资格
已登录 CLI 用户本机交互应用与开发用户需有效订阅
OAuth / GitHub App user token应用代表已登录用户请求用户需有效订阅
用户令牌环境变量自动化与 CI对应用户需有效订阅
组织安装令牌组织归属的服务自动化不需用户订阅,但需组织策略允许
BYOK自有云端或本地模型无需 Copilot 订阅

用户令牌配置

import { CopilotClient } from "@github/copilot-sdk";

const client = new CopilotClient({
    gitHubToken: userAccessToken,
    useLoggedInUser: false,
});

userAccessToken 由应用认证流程提供。支持 gho_ OAuth user token、ghu_ GitHub App user token、github_pat_ fine-grained PAT;认证专题把 ghp_ classic PAT 列为不支持。

useLoggedInUser: false 禁止回退到已保存 CLI 用户或 gh auth。环境令牌仍有自己的认证路径,不应把这一选项解释成清空进程中所有环境变量。

ghs_ installation token 不属于上述显式用户令牌选项,必须按组织服务认证走 runtime 环境。

认证优先级

官方认证专题列出:

  1. 显式 client 或 session gitHubToken。
  2. GITHUB_COPILOT_API_TOKEN 与 COPILOT_API_URL 组成的 direct API token 路径。
  3. COPILOT_GITHUB_TOKEN → GH_TOKEN → GITHUB_TOKEN。
  4. 已保存的 CLI OAuth 凭据。
  5. GitHub CLI gh auth 凭据。

会话级用户身份用于共享服务,不应让服务器启动者的个人登录替代请求用户。默认本机配置会读取已登录凭据;后端要明确控制输入来源。

过期与刷新

应用负责用户 OAuth 的存储、刷新和失效处理。短期用户令牌可注册会话级 token provider,runtime 在规定时机调用;这不意味着 SDK 自动完成 OAuth 授权流程。

BYOK 的 bearerTokenProvider 则用于模型提供方,不是 GitHub 用户令牌回调,详见BYOK。