应为 Composer 配置 GitHub Personal Access Token(PAT)以突破 API 速率限制;需在 GitHub 创建仅勾选 repo 权限的 token,再通过 composer config -g github-oauth.github.com 全局配置,使限额从 60 提升至 5000 次/小时。

在使用 Composer 安装或更新依赖时,如果频繁访问 GitHub(比如拉取私有仓库、或大量公开包),很容易触发 GitHub 的 API 速率限制(未认证请求限速 60 次/小时),导致报错:Could not fetch https://api.github.com/... 403 rate limit exceeded。解决方法是为 Composer 配置一个带 repo 权限的 GitHub Personal Access Token(PAT),让它以认证身份调用 API,将限额提升至 5000 次/小时。
生成 GitHub Personal Access Token
登录 GitHub → Settings → Developer settings → Personal access tokens → Tokens (classic) → Generate new token → Generate new token (classic):
- Token description 填个易识别的名字,比如 composer-cli
- 勾选 repo(必须;用于读取私有/公开仓库、fork 等)
- 可选勾选 read:packages 和 delete:packages(仅当你用 GitHub Packages 时需要)
- 不勾选 write 类权限(Composer 只读取元数据和 zip 包,无需写权限)
- 点击 Generate token,页面会显示一次完整 token 字符串——务必立即复制保存(关闭后不可再查看)
配置到 Composer 全局凭据
运行以下命令,Composer 会自动将 token 存入全局配置(auth.json),后续所有项目都会复用:
composer config -g github-oauth.github.com
例如:
composer config -g github-oauth.github.com ghp_abc123def456...
执行后,Composer 会在用户主目录下的 ~/.composer/auth.json(Linux/macOS)或 %APPDATA%\Composer\auth.json(Windows)中写入类似内容:
{
"github-oauth": {
"github.com": "ghp_abc123def456..."
}
}
验证是否生效
运行任意会触发 GitHub API 的命令,比如:
composer show monolog/monolog
如果不再报 403 且能正常显示包信息,说明配置成功。也可临时清空 Composer 缓存并重试:
composer clear-cache
注意:token 本身不涉及密码或敏感操作,但应避免硬编码在项目 auth.json 中(尤其是提交到 Git)。全局配置是最安全、最常用的做法。
其他注意事项
- GitHub 已弃用密码认证,不能再用账号密码配置(会报错或被拒绝)
- 若使用 GitHub SSO(企业账户),需先在组织设置中授权该 token,否则仍会 403
- Token 过期或被删除后,Composer 会回退到未认证请求,再次触发限速 —— 及时更新即可
- 私有仓库依赖(如
"vendor/repo": "dev-main")也依赖此 token 才能克隆或下载 ZIP










