必须用composer config bitbucket-oauth.bitbucket.org命令写入App Password,因Composer 2.2+仅识别该键名,强制校验域名、拒绝非App Password格式、自动写入auth.json并设600权限;手改auth.json易出错,http-basic等其他方式已彻底失效。
必须用
命令写入 App Password,其他方式(手改
、环境变量、
)在 Composer 2.2+ 中基本无效。
为什么
是唯一可靠入口
Composer 2.2+ 彻底移除了对
和旧 OAuth consumer 的支持,只解析这个特定键名。它内部强制做三件事:校验域名是否严格为
(不接受
或带协议前缀)、拒绝非 App Password 格式的值、自动将凭证写入
并设权限为
。手写
容易因空格、换行、字段嵌套错误或权限不对导致静默跳过认证。
命令中域名必须写成
,不能加
、
或路径
App Password 必须由你本人的 Bitbucket 账号生成(非团队账号),且至少勾选
执行后无回显,验证是否成功请运行:
配了还报 401/403 的真实原因
不是 token 没生效,而是 Composer 根本没走到认证那步——它只在明确识别到 “这是一个需要认证的 Bitbucket vcs 仓库” 时才读
。常见断点:
Composer 2.9.6
Composer 2.9.6 是 PHP 生态中高效、稳定的依赖管理工具。此版本在性能与兼容性上进一步优化,改进了依赖解析算法,提升大型项目中的安装与更新速度。它支持并行下载任务,显著减少等待时间,并增强了与私有仓库及镜像源的交互稳定性。同时修复了多项命令行交互与内存使用相关的缺陷,确保在复杂依赖关系下依然可靠运行。无论是新项目初始化还是现有系统维护,Composer 2.9.6 都能为开发者提供流畅、精准的依赖管理体验。
下载
中
项漏掉
,写了
或直接留空
字段填的是网页地址(如
)或少
后缀(正确应为
)
包名(如
)和私有仓库内
的
字段不一致(大小写敏感)
CI 环境下用了本地
,但未加
,也未通过
注入
App Password 怎么生成才真正可用
Bitbucket Cloud 已停用账户密码直连,App Password 是唯一被 Composer 认可的凭证形式,但它不是“生成即用”:
入口必须是个人设置页:
权限必须勾选
;
建议勾选(部分组织策略会校验)
如果账号启用了 SSO,App Password 将被禁用——必须先在 Bitbucket 设置中关闭 SSO 或联系管理员授权
生成后页面只显示一次,刷新即不可见;复制后立刻存好,删掉重生成会导致旧 token 失效
最常被忽略的一点:即使所有配置都对,
仍可能复用缓存的未授权响应头。遇到疑似生效但拉不到代码的情况,请先运行
再试。
composer config bitbucket-oauth.bitbucket.orgauth.jsonhttp-basiccomposer config bitbucket-oauth.bitbucket.orghttp-basic.bitbucket.orgbitbucket.orgwww.bitbucket.orgauth.json600auth.jsonbitbucket.orghttps://www.Repositories: Readcomposer config --auth --list | grep bitbucketbitbucket-oauthbitbucket-oauthcomposer.jsonrepositories"type": "vcs""type": "package"urlhttps://bitbucket.org/org/repo.githttps://bitbucket.org/org/repo.gitorg/repocomposer.jsonnamecomposer config--globalCOMPOSER_AUTH右上头像 → Personal settings → App passwords → Create app passwordRepositories: ReadAccount: Readcomposer installcomposer clear-cache