Skip to main content

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

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

应用可以代表用户发出 API 请求。 应用代表用户发出的 API 请求归属于该用户。 例如,如果应用代表用户发布评论,GitHub UI 将显示用户的虚拟形象照片以及应用的标识徽章作为问题作者。

评论的屏幕截图,其中包含带有重叠应用标识徽章的用户虚拟形象。 虚拟形象以橙色轮廓突出显示。

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

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

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

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

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

如果要将应用活动归属于应用而非用户,应改为以应用安装形式进行身份验证。 有关详细信息,请参阅“验证为 GitHub 应用程序安装”。

注意:如果用户报告在授权 GitHub App 后看不到其组织拥有的资源,并且组织使用 SAML SSO,则指示用户在重新授权之前为其组织启动活动的 SAML 会话。 有关详细信息,请参阅 GitHub Enterprise Cloud 文档中的“SAML 和 GitHub 应用”。