跳至主要内容

以 GitHub App 的身份进行身份验证

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

关于以 GitHub App 的身份进行身份验证

要以应用程序的身份发出 REST API 请求,必须先进行 GitHub 应用身份验证。例如,如果要使用 API 生成安装访问令牌以访问组织资源、列出应用程序跨组织的安装或暂停应用程序安装,则必须以应用身份进行身份验证。

如果 REST API 端点要求您以应用身份进行身份验证,则该端点的文档将指示您必须使用 JWT 才能访问该端点。GraphQL API 不支持任何需要您以应用身份进行身份验证的查询或更改。

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

  1. 为您的应用生成 JSON Web 令牌 (JWT)。有关更多信息,请参阅“为 GitHub 应用生成 JSON Web 令牌 (JWT)”。

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

    curl --request GET \
    --url "https://api.github.com/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 应用身份进行身份验证

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

注意

要使用 Octokit.js 库,必须安装并导入octokit。以下示例使用符合 ES6 的导入语句。有关不同安装和导入方法的更多信息,请参阅 octokit/octokit 存储库中的用法

  1. 获取您的应用 ID。您可以在 GitHub 应用的设置页面上找到您的应用 ID。有关导航到 GitHub 应用设置页面的更多信息,请参阅“修改 GitHub 应用注册”。

  2. 生成私钥。有关更多信息,请参阅“管理 GitHub 应用的私钥”。

  3. octokit导入App

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

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

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