您的应用可以代表用户进行 API 请求。应用代表用户进行的 API 请求将归因于该用户。例如,如果您的应用代表用户发布评论,GitHub UI 将显示用户的头像照片以及应用的标识符徽章作为问题的作者。
同样,如果请求触发审计日志和安全日志中的相应条目,日志将列出用户作为操作者,但会说明“programmatic_access_type”为“GitHub 应用用户到服务器令牌”。
要代表用户进行 API 请求,用户必须授权您的应用。如果应用安装在包含多个成员的组织中,每个成员都需要授权该应用,然后该应用才能代表他们执行操作。应用无需安装即可让用户授权该应用。
当用户在其帐户或组织中安装应用程序时,他们会授予应用程序访问其请求的组织和存储库资源的权限。在安装过程中,他们还会看到应用程序可以为单个用户请求的帐户权限列表。当用户授权应用程序时,他们会授予应用程序以其名义执行操作的权限,并授予应用程序请求的帐户权限。
用户授权您的应用程序后,您可以生成用户访问令牌,这是一种 OAuth 令牌。您应该在后续 API 请求的 Authorization
标头中发送用户访问令牌。有关提示用户授权您的应用程序和生成用户访问令牌的更多信息,请参阅 "为 GitHub 应用程序生成用户访问令牌"。
使用用户访问令牌发出的请求有时被称为“用户到服务器”请求。
如果您希望将应用程序活动归因于应用程序而不是用户,则应以应用程序安装身份进行身份验证。有关更多信息,请参阅 "以 GitHub 应用程序安装身份进行身份验证"。
注意:如果用户报告在授权您的 GitHub 应用程序后无法看到其组织拥有的资源,并且该组织使用 SAML SSO,请指示用户在重新授权之前启动其组织的活动 SAML 会话。有关更多信息,请参阅 GitHub Enterprise Cloud 文档中的 "SAML 和 GitHub 应用程序"。