推荐使用auth.json文件或ssh方式管理私有仓库认证。将敏感信息如gitHub令牌或gitlab用户名密码存于项目或全局auth.json中,避免提交至版本控制;也可通过composer config –global设置凭证,自动写入~/.composer/auth.json;同时可在composer.json配置repositories指向私有VCS地址;更安全的方式是使用SSH密钥替代Token,配合SSH格式URL实现无密码认证,提升安全性与协作便利性。

当使用 Composer 安装来自私有仓库的包时,如果该仓库需要身份验证(如 github、GitLab 或私有 Satis 仓库),Composer 提供了多种方式来安全地处理 token 或密码。以下是常见且推荐的做法。
配置 auth.json 文件
最安全的方式是将认证信息放在单独的 auth.json 文件中,避免将敏感信息提交到版本控制中。
在项目根目录或 Composer 的全局配置目录(通常是 ~/.composer)中创建 auth.json 文件:
{ “http-basic“: { “gitlab.example.com”: { “username”: “your-username”, “password“: “your-access-token” } }, “github-oauth”: { “github.com”: “your-github-token” } }
例如:
- 对于 GitHub 私有仓库:使用个人访问令牌(PAT)填入 github-oauth。
- 对于 GitLab 或其他支持 HTTP Basic 认证的 Git 服务:使用用户名和私人令牌配置 http-basic。
通过 config 命令设置凭证
你也可以使用 Composer 命令行工具直接设置凭证,它会自动写入全局或项目级配置:
composer config –global http-basic.gitlab.example.com username composer config –global http-basic.gitlab.example.com password
或针对 GitHub:
composer config –global github-oauth.github.com your-token-here
这种方式会把信息写入用户主目录的 Composer 配置中(~/.composer/auth.json),不会出现在项目代码里。
私有仓库配置在 composer.json 中
确保你的 composer.json 正确配置了私有仓库源:
{ “repositories”: [ { “type”: “vcs”, “url”: “https://gitlab.example.com/your-company/your-private-package.git” } ], “require”: { “your-company/your-private-package”: “^1.0” } }
Composer 在拉取代码时会根据域名自动查找对应的认证信息。
使用 SSH 替代 Token(推荐用于 Git)
如果你使用的是 Git 支持的仓库,更推荐使用 SSH 公钥认证:
- 生成 SSH 密钥并添加到 GitHub/GitLab 账户。
- 将仓库 URL 改为 SSH 格式:git@gitlab.example.com:vendor/package.git
- 无需在 Composer 中配置任何 token,系统通过 SSH agent 自动认证。
基本上就这些。关键是不要把 token 写进 composer.json,优先使用 auth.json 或 SSH 方式管理私有仓库访问权限。这样既安全又便于团队协作。