当 OAuth 应用想要通过您在 GitHub 上的帐户识别您时,您会看到一个页面,其中包含应用的开发者联系信息以及正在请求的特定数据的列表。
提示
您必须验证您的电子邮件地址才能授权 OAuth 应用。
OAuth 应用访问
OAuth 应用可以对您的 GitHub 数据拥有读取或写入访问权限。
- 读取访问权限仅允许应用查看您的数据。
- 写入访问权限允许应用更改您的数据。
提示
我们建议您定期查看已授权的集成。删除任何一段时间内未使用过的应用程序和令牌。有关更多信息,请参阅“查看您已授权的 OAuth 应用”。
关于 OAuth 范围
范围是 OAuth 应用可以请求访问公共和非公共数据的权限的命名组。
当您想要使用与 GitHub 集成的 OAuth 应用时,该应用会告知您需要访问您数据的哪种类型。如果您授予该应用访问权限,则该应用将能够代表您执行操作,例如读取或修改数据。例如,如果您想要使用请求user:email
范围的应用,则该应用将只能读取您的私有电子邮件地址。有关更多信息,请参阅“OAuth 应用的范围”。
注意
目前,您无法将源代码访问范围限定为只读。
令牌具有与令牌所有者相同的访问资源和对这些资源执行操作的功能,并且进一步受授予令牌的任何范围或权限的限制。令牌不能向用户授予额外的访问功能。例如,应用程序可以创建一个配置了admin:org
范围的访问令牌,但如果应用程序的用户不是组织所有者,则不会向应用程序授予对组织的管理访问权限。
每个用户/应用程序/范围组合最多可以发出十个令牌,每小时最多可以创建十个令牌。如果应用程序为同一个用户和相同的范围创建了超过十个令牌,则具有相同用户/应用程序/范围组合的最旧令牌将被撤销。但是,达到每小时速率限制不会撤销您最旧的令牌。相反,它会在浏览器中触发重新授权提示,要求用户仔细检查他们授予应用程序的权限。此提示旨在为应用程序可能陷入的任何潜在无限循环提供一个休息时间,因为应用程序在一个小时内向用户请求十个令牌几乎没有理由。
请求的数据类型
OAuth 应用可以请求多种类型的数据。
数据类型 | 描述 |
---|---|
提交状态 | 您可以授予应用报告您的提交状态的访问权限。提交状态访问允许应用确定针对特定提交的构建是否成功。应用将无法访问您的代码,但它们可以读取和写入针对特定提交的状态信息。 |
部署 | 部署状态访问允许应用确定针对公共和私有存储库的特定提交的部署是否成功。应用将无法访问您的代码。 |
Gist | Gist访问允许应用读取或写入您的公共和私密 Gist。 |
钩子 | Webhook访问允许应用读取或写入您管理的存储库的钩子配置。 |
通知 | 通知访问允许应用读取您的 GitHub 通知,例如问题和拉取请求上的评论。但是,应用仍然无法访问您的存储库中的任何内容。 |
组织和团队 | 组织和团队访问允许应用访问和管理组织和团队成员资格。 |
个人用户数据 | 用户数据包括在您的用户资料中找到的信息,例如您的姓名、电子邮件地址和位置。 |
存储库 | 存储库信息包括贡献者的姓名、您创建的分支以及存储库中的实际文件。应用可以在用户范围级别请求对公共或私有存储库的访问权限。 |
删除存储库 | 应用可以请求删除您管理的存储库,但它们将无法访问您的代码。 |
项目 | 访问用户和组织项目。应用可以请求读/写或只读访问权限。 |
请求更新的权限
当 OAuth 应用请求新的访问权限时,它们会通知您其当前权限和新权限之间的差异。
OAuth 应用和组织
当您为您的个人帐户授权 OAuth 应用时,您还将看到授权将如何影响您所属的每个组织。
-
对于具有OAuth 应用访问权限限制的组织,您可以请求组织所有者批准在该组织中使用该应用程序。如果组织不批准该应用程序,则该应用程序将只能访问该组织的公共资源。如果您是组织所有者,您可以自己批准该应用程序。
-
对于没有OAuth 应用访问权限限制的组织,该应用程序将自动获得授权以访问该组织的资源。因此,您应该谨慎选择批准哪些 OAuth 应用访问您的个人帐户资源以及任何组织资源。
如果您属于任何启用了 SAML 单点登录 (SSO) 的组织,并且您过去通过 SAML 身份验证为该组织创建了链接身份,则每次授权 OAuth 应用时,您都必须在每个组织中拥有一个活动的 SAML 会话。
注意
如果您遇到已授权的 OAuth 应用或 GitHub 应用访问受 SAML 保护的组织时出现的问题,您可能需要从已授权的 GitHub 应用或已授权的 OAuth 应用页面撤销该应用,访问该组织进行身份验证并建立一个活动的 SAML 会话,然后尝试通过访问该应用重新授权该应用。