应用可以代表用户发出 API 请求。 应用代表用户发出的 API 请求归属于该用户。 例如,如果应用代表用户发布评论,GitHub UI 将显示用户的虚拟形象照片以及应用的标识徽章作为问题作者。
同样,如果请求触发审核日志和安全日志中的相应条目,日志会将用户列为参与者,但会声明“programmatic_access_type”是“GitHub 应用用户到服务器令牌”。
若要代表用户发出 API 请求,用户需要授权应用。 如果应用安装在包含多个成员的组织中,每个成员都需要先授权该应用,然后该应用才能代表他们执行操作。 用户无需安装应用即可授权该应用。
当用户在他们的帐户或组织上安装应用时,他们授予该应用访问其请求的组织和存储库资源的权限。 在安装过程中,他们还会看到应用可以为各个用户请求的帐户权限列表。 当用户授权应用时,他们授予应用代表他们执行操作的权限,且授予帐户应用请求的权限。
用户授权应用后,可以生成用户访问令牌,这是一种 OAuth 标记。 你应在后续 API 请求的 Authorization
标头中发送用户访问令牌。 有关提示用户授权应用和生成用户访问令牌的详细信息,请参阅“为 GitHub 应用生成用户访问令牌”。
使用用户访问令牌发出的请求有时称为“用户到服务器”请求。
令牌具有与令牌所有者相同的访问资源和对这些资源执行操作的能力,并且还受到授予令牌的任何范围或权限的限制。 令牌无法向用户授予额外访问权限功能。
如果要将应用活动归属于应用而非用户,应改为以应用安装形式进行身份验证。 有关详细信息,请参阅“验证为 GitHub 应用程序安装”。
注意:如果用户报告在授权 GitHub App 后看不到其组织拥有的资源,并且组织使用 SAML SSO,则指示用户在重新授权之前为其组织启动活动的 SAML 会话。 有关详细信息,请参阅 GitHub Enterprise Cloud 文档中的“SAML 和 GitHub 应用”。