Skip to main content

此版本的 GitHub Enterprise Server 将于以下日期停止服务 2026-03-17. 即使针对重大安全问题,也不会发布补丁。 为了获得更好的性能、更高的安全性和新功能,请升级到最新版本的 GitHub Enterprise。 如需升级帮助,请联系 GitHub Enterprise 支持

以GitHub应用身份进行身份验证

可以以 GitHub App 形式进行身份验证,以生成安装访问令牌或管理应用。

关于以 GitHub App 形式进行身份验证

你必须以 GitHub App 形式进行身份验证,才能以应用程序身份发出 REST API 请求。 例如,如果想使用 API 生成用于访问组织资源的访问令牌、列出跨帐户应用安装情况或暂停应用安装,则必须作为应用进行身份验证。

如果 REST API 终结点要求你以应用形式进行身份验证,该终结点的文档将指示必须使用 JWT 来访问该终结点。 GraphQL API 不支持任何需要使用 JWT 进行身份验证的查询或变更。

使用 JSON Web 令牌 (JWT) 以 GitHub App 形式进行身份验证

  1. 为应用生成 JSON Web 令牌 (JWT)。 有关详细信息,请参阅“AUTOTITLE”。

  2. 在请求的标头中包含 JWT。 在下面的示例中,将 替换为 JWT。

    curl --request GET \
    --url "http(s)://HOSTNAME/api/v3/app/installations" \
    --header "Accept: application/vnd.github+json" \
    --header "Authorization: Bearer YOUR_JWT" \
    --header "X-GitHub-Api-Version: 2022-11-28"
    

使用 Octokit.js SDK 以 GitHub App 形式进行身份验证

可以使用 GitHub 的 Octokit.js SDK 以 GitHub App 形式进行身份验证。 使用 SDK 进行身份验证的一个优点是,无需自行生成 JSON Web 令牌 (JWT)。 此外,SDK 将负责在 JWT 过期时重新生成 JWT。

注意

必须安装和导入 ,才能使用 Octokit.js 库。 以下示例根据 ES6 使用导入语句。 有关不同安装和导入方法的详细信息,请参阅 octokit/octokit 存储库中的用法。

  1. 获取应用的 ID。 可以在 GitHub App 的设置页上找到应用的 ID。 若要详细了解如何导航到 GitHub App 的设置页,请参阅“AUTOTITLE”。

  2. 生成私钥。 有关详细信息,请参阅“AUTOTITLE”。

  3. 从 中导入 。

    JavaScript
    import { App } from "octokit";
    
  4. 创建一个新实例。 在以下示例中,将 替换为对应用 ID 的引用。 将 替换为对应用私钥值的引用。

    JavaScript
     const app = new App({
      appId: APP_ID,
      privateKey: PRIVATE_KEY,
    });
    
  5. 使用 方法向需要 JWT 的 REST API 终结点发出请求。 例如:

    JavaScript
    await app.octokit.request("/app")