npm 发布 403(2FA/Token)排查记录
本文记录发布到 npm 时出现 403 权限错误的原因与处理方式。
报错
vbnet
npm error 403 Forbidden - PUT https://registry.npmjs.org/@gogec%2fthree-scene-vue3
npm error Two-factor authentication or granular access token with bypass 2fa enabled is required to publish packages.
原因说明
账号开启了 two-factor auth: auth-and-writes,发布必须满足以下任一条件:
- 发布时输入一次性验证码(OTP)
- 使用 带 publish 权限且允许 bypass 2FA 的 Granular Access Token
如果使用的 token 没有发布权限,或未携带 OTP,就会 403。
解决方案
方式一:带 OTP 发布
css
npm publish --access public --otp=123456
方式二:使用有发布权限的 token
在 npm 官网创建 Granular Access Token
- 勾选 Publish 权限
- 如需绕过 2FA,勾选 bypass 2FA


设置对应权限之后,页面滚动到底部,设置过期时间,点击生成即可

如何写入 _authToken
推荐使用 npm config set:
arduino
npm config set //registry.npmjs.org/:_authToken=你的token
只作用于当前项目(写入项目根目录 .npmrc):
arduino
npm config set //registry.npmjs.org/:_authToken=你的token --location=project
完成以上步骤,重新npm publish --access public推送包即可成功
