跳至主要内容

代表用户使用 GitHub 应用进行身份验证

您的 GitHub 应用可以代表用户执行操作,例如创建问题、发布评论或创建部署。

您的应用可以代表用户发出 API 请求。应用代表用户发出的 API 请求将归因于该用户。例如,如果您的应用代表用户发布评论,则 GitHub UI 将显示用户的头像照片以及应用的标识符徽章作为问题的作者。

Screenshot of a comment that has a user avatar with an overlaid app identicon badge. The avatar is highlighted with an orange outline.

同样,如果请求在审核日志和安全日志中触发相应的条目,则日志将列出用户作为执行者,但会声明“programmatic_access_type”为“GitHub 应用用户到服务器令牌”。

要代表用户发出 API 请求,用户必须授权您的应用。如果应用安装在包含多个成员的组织中,则每个成员都需要授权该应用,然后该应用才能代表他们执行操作。应用无需安装即可让用户授权该应用。

当用户在其帐户或组织上安装应用时,他们会授予应用访问其请求的组织和存储库资源的权限。在安装过程中,他们还会看到应用可以为单个用户请求的帐户权限列表。当用户授权应用时,他们会授予应用代表他们执行操作的权限,并授予应用请求的帐户权限。

用户授权您的应用后,您可以生成用户访问令牌,这是一种 OAuth 令牌。您应该在后续 API 请求的Authorization标头中发送用户访问令牌。有关提示用户授权您的应用和生成用户访问令牌的更多信息,请参阅“为 GitHub 应用生成用户访问令牌”。

使用用户访问令牌发出的请求有时称为“用户到服务器”请求。

令牌具有与令牌所有者相同的访问资源和对这些资源执行操作的功能,并且进一步受授予令牌的任何范围或权限的限制。令牌不能向用户授予额外的访问功能。

如果要将应用活动归因于应用而不是用户,则应作为应用安装进行身份验证。有关更多信息,请参阅“作为 GitHub 应用安装进行身份验证”。

注意

如果用户报告在授权您的 GitHub 应用后无法查看其组织拥有的资源,并且该组织使用 SAML SSO,请指示用户在重新授权之前启动其组织的活动 SAML 会话。有关更多信息,请参阅 GitHub Enterprise Cloud 文档中的“SAML 和 GitHub 应用”。