通过 Github API v3 进行认证的方式有 2 类

  • Basic authentication
    • Username and Password
    • Personal Access Token
  • OAuth2
    • OAuth2 token (sent in a header)
    • OAuth2 key/secret

这 3 种认证方式的认证格式如下:

1
2
3
curl -u "username" https://api.github.com
curl -H "Authorization: token OAUTH-TOKEN" https://api.github.com
curl 'https://api.github.com/users/whatever?client_id=xxxx&client_secret=yyyy'

本文只介绍 Github 的基本认证 (Basic authentication), 尽管如此, Github 官方强烈建议用户使用 OAuth 进行生产环境的认证

Github 基本认证实现了 RFC2617 标准, 只在返回未经认证的请求时略有差异. RFC2617 要求返回 401 Unauthorized, 但 Github API v3 返回 404 Not Found

可通过 2 种方式进行 GitHub 基本认证

通过 用户名 和 密码

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

这样访问, curl 会提示输入密码

通过 OAuth 令牌 (OAuth Tokens)

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

使用 personal access tokens 或 OAuth 令牌代替密码也是方案之一

链接