如何使用axios结合GitHub auth token对GitHub API进行访问鉴权
用GitHub Auth Token + Axios 鉴权访问GitHub API的实现方法
- 前置准备:先在GitHub后台生成个人访问令牌(PAT),按需勾选对应的API访问权限,令牌生成后仅显示一次,注意保存。严禁将明文令牌硬编码到前端公开代码、上传到公开代码仓库,避免权限泄漏。
核心实现逻辑
鉴权核心是在请求头中添加Authorization字段,格式为token 你的令牌字符串,同时建议指定GitHub API版本避免兼容问题。
示例1:单次请求携带鉴权信息
// 导入axios,Node.js环境用require,前端项目用ES模块导入即可 import axios from 'axios' axios.get('https://api.github.com/user', { headers: { // 替换为你自己的GitHub令牌,生产环境建议从环境变量读取 'Authorization': `token ${process.env.GITHUB_TOKEN}`, // 指定使用GitHub API v3版本 'Accept': 'application/vnd.github.v3+json' } }) .then(response => console.log('用户信息:', response.data)) .catch(error => console.error('请求失败:', error.response?.data || error.message))
示例2:创建复用的axios实例(适合多次调用GitHub API场景)
不需要每次请求都重复配置头信息,统一管理更方便:
import axios from 'axios' const githubClient = axios.create({ baseURL: 'https://api.github.com', headers: { 'Authorization': `token ${process.env.GITHUB_TOKEN}`, 'Accept': 'application/vnd.github.v3+json' } }) // 调用时直接传入接口路径即可 // 获取当前用户的仓库列表 githubClient.get('/user/repos', { params: { per_page: 10, page: 1 } }) .then(res => console.log('仓库列表:', res.data)) .catch(err => console.error(err))
注意事项
- 未携带令牌请求GitHub API的速率限制为每小时60次,携带令牌后可提升到每小时5000次,速率限制剩余额度可以在响应头的
X-RateLimit-Remaining字段查看。 - 如果请求返回401错误,先检查令牌是否过期、是否配置了正确的权限,以及
Authorization头的格式是否正确(注意token和令牌之间有一个空格)。
内容的提问来源于stack exchange,提问作者overdd
相关产品推荐
相关产品推荐

