配置私有仓库认证需在composer.json添加仓库地址,并通过auth.json文件管理凭证;推荐使用个人访问令牌或ssh公钥认证,避免明文密码,确保凭据安全。

在使用 Composer 配置私有仓库时,如果仓库需要认证(如私有 gitLab、github、Packagist 企业版或私有 Satis 仓库),你需要配置认证信息以确保能够拉取受保护的包。Composer 提供了多种方式来安全地管理这些凭证。
1. 使用 config.json 配置私有仓库和基础认证
你可以在项目的 composer.json 中添加私有仓库地址,并通过 auth.json 文件配置认证信息,避免将敏感信息提交到版本控制中。
在项目根目录的 composer.json 中添加仓库:
{ “repositories”: [ { “type”: “vcs”, “url”: “https://gitlab.com/your-company/your-private-package.git” } ] }
然后创建一个 auth.json 文件(不提交到 Git):
{ “http-basic“: { “gitlab.com”: { “username”: “your-access-Token”, “password“: “” } } }
注意:对于 gitlab、GitHub 等平台,推荐使用个人访问令牌(Personal access Token)作为用户名,密码留空或也填令牌。
2. 使用 OAuth 或 Token 认证(推荐)
很多平台支持通过 Bearer Token 或 OAuth 进行认证。你可以将 token 写入 auth.json 的 http-basic 或使用平台特定方式。
例如,GitHub 可使用 Personal Access Token:
{ “http-basic”: { “github.com”: { “username”: “your_github_token”, “password”: “” } } }
或者配置 GitHub 的 bearer 类型(适用于 API 访问):
{ “bearer”: { “gitee.com”: “your-gitee-token” } }
3. 全局配置认证(适用于所有项目)
如果你希望在系统级别配置认证,可以修改全局的 Composer 配置:
composer config –global http-basic.gitlab.com username password
这会在 ~/.composer/auth.json 中写入凭证,所有项目都能使用。
4. 使用 SSH 协议避免密码认证
更安全的方式是使用 SSH 公钥认证。将你的私有仓库 URL 改为 SSH 地址:
{ “repositories”: [ { “type”: “vcs”, “url”: “git@gitlab.com:your-company/your-package.git” } ] }
前提是你已在对应平台(如 GitLab)添加了 SSH 公钥,并且本地 SSH agent 正常运行。
基本上就这些。关键是把认证信息放在 auth.json 中,配合 composer.json 的 repositories 定义,既能安全访问私有包,又不会泄露凭据。使用 token 或 SSH 是更推荐的做法。