必须用空格分隔,正确写法为composer config --global github-oauth.github.com ghp_abc123def456;等号、冒号、引号均导致失败,PowerShell中需用单引号包裹含$的token,Linux/macOS下auth.json权限必须为600,验证需通过composer config --global github-oauth.github.com输出掩码token、composer diagnose显示GitHub API: OK或composer update -v日志出现“Using GitHub token”才算生效,域名仅认github.com。

composer config --global github-oauth.github.com 命令必须用空格分隔
这条命令不是 composer config --global github-oauth.github.com=xxx,也不是 composer config --global github-oauth.github.com:xxx。等号、冒号、引号都会导致写入失败或 token 被当作文本字面量处理。
正确写法只有这一种:composer config --global github-oauth.github.com ghp_abc123def456(注意是空格,且 token 不能加引号)。
常见错误:在 PowerShell 中直接粘贴含 $ 的 token,会被变量展开截断;建议改用 cmd,或用单引号包裹:composer config --global github-oauth.github.com '$TOKEN'。
auth.json 权限必须是 600,否则 Composer 静默忽略
Linux/macOS 下,~/.composer/auth.json 文件权限不是建议项,而是硬性要求。Composer 在读取该文件前会检查权限,只要不是 600(即仅属主可读写),就直接跳过,退回到未认证状态——不会报错,也不会提示,只会继续卡在每小时 60 次限额里。
执行这句确认并修复:chmod 600 ~/.composer/auth.json。
Windows 用户不用 chmod,但需确保该文件没被系统设为只读,且不在 OneDrive 或其他同步工具的“按需加载”路径下(可能造成读取为空)。
验证是否真正生效不能只看 composer install 成功
安装成功 ≠ token 生效。很多用户配完就跑 composer install,看到依赖装上了就以为 OK,其实可能只是缓存命中的巧合。
可靠验证方式有三种:
• 运行 composer config --global github-oauth.github.com,应输出 token 前几位(后段被掩码)
• 运行 composer diagnose,看到 GitHub API: OK 才算通过
• 加 -v 参数重试:composer update -v,日志中出现 Using GitHub token from configuration 才是真启用
github.com 是唯一合法 host,别写 api.github.com
Composer 内部做了域名映射:只要请求发往 api.github.com、github.com 或 raw.githubusercontent.com,它都会查 auth.json 里 github.com 对应的 token 并复用。
如果你误配成 github-oauth.api.github.com,Composer 就完全匹配不到,token 形同虚设。
检查命令:composer config --global --list | grep github-oauth,输出必须是 github-oauth.github.com,不能带 api. 前缀。
GitHub Enterprise 用户例外:必须配成 github-oauth.your-ghe-domain.com,且域名要和实际 API 地址(如 https://git.example.com/api/v3)完全一致,包括端口。


















