config.json 用于配置 composer 全局行为,如缓存路径、仓库源等;auth.json 专门存储认证信息,如 API Token 和用户名密码。前者控制“怎么运行”,后者提供“凭据支持”。两者独立存在,Composer 自动读取,敏感的 auth.json 应设置权限为 600。通过 composer config –global 可分别写入对应文件,实现安全灵活的配置管理。

Composer 的 config.json 和 auth.json 是两个独立的配置文件,用途不同,作用范围也不同。它们通常都位于用户主目录下的 ~/.composer/ 路径中(windows 为 C:Users用户名appDataRoamingComposer),但管理的内容各有侧重。
config.json:全局行为配置
这个文件用于定义 Composer 的全局运行行为和默认设置。它影响的是 Composer 如何工作,比如包的存储位置、仓库源、缓存路径等。
常见配置项包括:
- home:自定义包的安装路径
- cache-dir:设置缓存目录
- repositories:添加私有或镜像仓库
- github-protocols:指定 gitHub 使用的协议(如 https)
- process-timeout:命令执行超时时间
示例:
{
“config”: {
“cache-dir”: “/path/to/cache”,
“github-protocols”: [“https”]
}
}
auth.json:认证信息管理
这个文件专门用来存放敏感的认证信息,比如 API Token、OAuth 密钥、HTTP 基本身份验证凭据等。它的存在是为了避免将密码或 token 写在 composer.json 或命令行中,提升安全性。
主要用途包括:
- http-basic:配置私有仓库的用户名和密码(如 gitlab、Bitbucket)
- github-oauth:设置 GitHub 的 Personal access Token,避免 API 限流
- gitlab-token:GitLab 的私有项目访问令牌
示例:
{
“http-basic”: {
“repo.example.com”: {
“username”: “user”,
“password“: “pass”
}
},
“github-oauth”: {
“github.com”: “your-oauth-token”
}
}
关键区别总结
config.json 控制“怎么运行”,auth.json 提供“凭据支持”。两者可以独立存在。Composer 会自动读取这两个文件,但 auth.json 更加敏感,权限应设为 600(仅用户可读写)。
你也可以通过 composer config 命令来设置这些值,它会自动选择写入哪个文件。例如:
-
composer config --global repositories.myprivaterepo composer https://repo.example.com→ 写入 config.json -
composer config --global http-basic.repo.example.com username password→ 写入 auth.json
基本上就这些。分开管理配置和认证,既安全又灵活。