其他身份验证方法

您可以在非生产环境中使用基本身份验证进行测试。

虽然 API 提供多种身份验证方法,但我们强烈建议对生产应用程序使用 OAuth。 提供的其他方法旨在用于脚本或测试(即没有必要使用完整 OAuth 方法的情况)。 依赖 GitHub 进行身份验证的第三方应用程序不应要求或收集 GitHub 凭据。 它们应该使用 OAuth web 工作流程

基本身份验证

API 支持在 RFC2617 中定义的基本身份验证,但有一些细微区别。 主要区别在于 RFC 要求使用 401 Unauthorized 响应来回复未经验证的请求。 在很多情况下这会暴露用户数据的存在。 对于此类请求,GitHub API 的响应是 404 Not Found。 这可能导致 HTTP 库假定返回 401 Unauthorized 的问题。 解决方案是手动创建 Authorization 标头。

通过 OAuth 和个人访问令牌

我们建议您使用 OAuth 令牌向 GitHub API 验证。 OAuth 令牌包含个人访问令牌,允许用户随时撤销访问权限。

$ curl -u username:token https://api.github.com/user

如果您的工具只支持基本身份验证,但您想要利用 OAuth 访问令牌的安全功能,这个方法非常有用。

通过用户名和密码

注意:自 2020 年 11 月 13 日开始,对于所有 GitHub.com 帐户(包括 GitHub Free、GitHub Pro、GitHub Team 或 GitHub Enterprise Cloud 计划上的帐户),GitHub 已停止对 API 的密码验证。 现在,您必须使用 API 令牌(如 OAuth 访问令牌、GitHub 应用程序安装访问令牌或个人访问令牌,具体取决于您需要使用令牌执行的操作)向 GitHub API 验证。 更多信息请参阅“疑难排解”。

SAML SSO 身份验证

注:代表其他工具生成令牌的集成和 OAuth 应用程序将自动获得授权。

如果您要使用 API 访问实施 SAML SSO 身份验证的组织,您需要创建个人访问令牌 (PAT) 并授权该令牌访问组织。 访问 X-GitHub-SO 中指定的 URL 以授权令牌访问组织。

$ curl -v -H "Authorization: token TOKEN" https://api.github.com/repos/octodocs-test/test

> X-GitHub-SSO: required; url=https://github.com/orgs/octodocs-test/sso?authorization_request=AZSCKtL4U8yX1H3sCQIVnVgmjmon5fWxks5YrqhJgah0b2tlbl9pZM4EuMz4
{
  "message": "Resource protected by organization SAML enforcement. You must grant your personal token access to this organization.",
  "documentation_url": "https://docs.github.com"
}

在请求可能来自多个组织的数据时(例如,请求由用户创建的议题列表),X-GitHub-SSO 标头将指示哪些组织需要您授权个人访问令牌:

$ curl -v -H "Authorization: token TOKEN" https://api.github.com/user/issues

> X-GitHub-SSO: partial-results; organizations=21955855,20582480

organizations 的值是需要您授权个人访问令牌的组织列表,用逗号分隔。

使用双重身份验证

启用双重身份验证后,REST API 中大多数端点的基本身份验证均要求您使用个人访问令牌。

您可以使用 [GitHub开发者设置

此文档对您有帮助吗?

隐私政策

帮助我们创建出色的文档!

所有 GitHub 文档都是开源的。看到错误或不清楚的内容了吗?提交拉取请求。

做出贡献

或, 了解如何参与。