配置http Basic认证需在auth.json中设置用户名密码,支持项目级和全局配置,确保composer.json正确添加私有仓库地址,并通过安全措施保护凭证不被泄露。

在使用 Composer 访问私有 Composer 仓库(如 Satis、private Packagist 或自建的 HTTP 服务)时,如果该仓库启用了 HTTP Basic 认证,就需要在 Composer 配置中提供用户名和密码。否则,Composer 将无法下载包,会提示 401 Unauthorized 错误。下面教你如何正确配置 HTTP Basic 认证。
配置 auth.json 文件
Composer 推荐将认证信息放在项目根目录下的 auth.json 文件中,这样可以避免将敏感信息提交到版本控制系统。
在项目根目录创建或编辑 auth.json 文件,内容如下:
{ “http-basic”: { “your-private-repo.com”: { “username”: “your-username”, “password“: “your-password” } } }
其中:
- your-private-repo.com:替换为你的私有仓库域名或地址(不含协议)。
- username 和 password:填写对应的认证凭据。
全局配置认证信息
如果你有多个项目使用同一个私有仓库,可以将认证信息配置到全局范围,避免每个项目都写一遍。
运行以下命令,Composer 会自动将配置写入全局的 auth.json(通常位于 ~/.composer/auth.json):
composer config –global http-basic.your-private-repo.com username password
执行后,所有项目访问该域名时都会自动带上认证信息。
通过 composer.json 添加仓库
确保你的 composer.json 中已正确添加私有仓库:
{ “repositories”: [ { “type”: “composer”, “url”: “https://your-private-repo.com” } ] }
Composer 在请求这个 URL 时,会查找匹配的 HTTP Basic 认证信息并自动附加到请求头中。
安全建议
为了保障凭证安全,请注意以下几点:
- 不要把 auth.json 提交到 git 等版本控制系统。建议将其加入 .gitignore。
- 使用 CI/CD 时,可通过环境变量或密钥管理工具动态生成 auth.json。
- 定期轮换密码或使用令牌代替明文密码。
基本上就这些。只要配置好 auth.json 并确保仓库地址正确,Composer 就能顺利拉取私有包。不复杂但容易忽略。


