Github提供丰富的符合Restful规范的API接口,方便了开发者将Github的某些功能集成到自己的应用中。大部分API接口无需任何权限就可以访问,但是在访问频次上有严格的限制,比如未经认证的用户每个小时最多发起60次请求,已认证的用户每个小时可以发起5000次请求,虽然提高了两个量级,但如果想使用自己的 GitHub 凭据代表很多用户发起请求,仍然有问题,这个时候应该考虑使用OAuth,使用用户共享的身份信息发起请求,这样频率限制会算在该用户身上。
以下介绍三种认证方式,大家可以结合自己的场景选用
一: Basic Authentication
如果使用调试工具,直接在Auth一栏里选择Add authorization
,然后输入用户名和密码即可,如果通过代码方式请求,在headers里面添加Authorization
字段,取值为Basic YWxmYWx...
,注意空格不能遗漏,后面的YWxmYWx...
是user:password
的base64加密后的结果。
使用用户身份信息访问以下接口,将得到该用户的所有仓库信息
curl -u "user:pass" https://api.github.com/user/repos
二:Token方式
可以参考这篇官方文档获得Person access tokens。不活跃的token有效期为一年。
token
的使用方式分为两种,一种是在headers
中添加Authorization
字段
curl -v -H "Authorization: token TOEKN" https://api.github.com/repos/alfalfaw/vue-shop-admin
另一种是在请求url中添加一个access_token
参数,请求地址类似
https://api.github.com/repos/alfalfaw/vue-shop-admin?access_token=TOKEN
三:OAuth App
采用这种身份验证方式登录后,用户通过我们的应用向Github发起请求时,使用的身份信息就是用户自己的,每天有5000次的请求上限,可以满足一个用户日常使用。完整的配置流程可以参考GitHub OAuth 第三方登录示例教程,内容涉及后端知识,可以参考这篇文章学习Koa