You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 04:06:04