auth.json文件的作用

auth.json 是 Composer(PHP 的依赖管理工具)在某些情况下生成的私有包认证配置文件。

使用场景
当你的项目需要从私有 Composer 仓库(如公司内部的 Packagist、私有 Git 仓库、Satis、Toran Proxy、Artifactory 等)安装包时,Composer 会要求你提供认证信息(用户名/密码、token、SSH 密钥等)。

为了避免每次 composer update/install 都手动输入凭证,Composer 会把这些认证信息保存到项目根目录下的 auth.json 文件中。

内容示例

{
    "http-basic": {
        "packages.example.com": {
            "username": "my-company-user",
            "password": "super-secret-token-123456"
        }
    },
    "github-oauth": {
        "github.com": "ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
    },
    "gitlab-token": {
        "gitlab.example.com": "glpat-xxxxxxxxxxxxxxxxxxxx"
    }
}

存放位置
项目根目录(和 composer.json 同级)。有时也会出现在用户全局目录:~/.composer/auth.json(旧版 Composer)或 ~/.config/composer/auth.json(新版)

是否需要提交到 Git?
绝对不要提交!必须忽略。因为里面包含明文凭证(用户名、密码、token),提交到 Git 仓库会导致严重的安全泄露(任何人拉代码都能看到你的私有仓库凭证)。并且不同开发者的凭证不同,提交后会互相冲突

如何正确管理 auth.json?
1 个人开发机:让 Composer 自动生成(运行 composer config –auth … 时会创建)
2 CI/CD 环境(GitHub Actions、GitLab CI、Jenkins 等):不要提交文件,而是通过环境变量注入凭证,例如:

composer config --auth http-basic.packages.example.com.username "${COMPOSER_USERNAME}"
composer config --auth http-basic.packages.example.com.password "${COMPOSER_PASSWORD}"


或使用 COMPOSER_AUTH 环境变量(JSON 字符串):

export COMPOSER_AUTH='{"http-basic":{"packages.example.com":{"username":"xxx","password":"yyy"}}}'

3 团队协作:把认证信息写到 .env 或 CI 变量中,项目中只保留 auth.json.example(空模板)。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注