📦 npm publish 403 错误:2FA 双因素认证问题详解与解决方案

0 阅读1分钟

错误信息再现

挺久没有往npm发过包了,最近在npm publish发包的时候发现终端报错如下

npm ERR! code E403
npm ERR! 403 403 Forbidden - PUT https://registry.npmjs.org/vue-panel-splitter 
Two-factor authentication or granular access token with bypass 2fa enabled is required to publish packages.
npm ERR! 403 In most cases, you or one of your dependencies are requesting
npm ERR! 403 a package version that is forbidden by your security policy, or
npm ERR! 403 on a server you do not have access to.

然后就去网上搜索为什么会报这个错,因为以往只需要在终端登录npm账号,再publish就可以直接推送了,直到看见官方文档的说明。

错误原因分析

Snipaste_2026-03-09_14-29-36.jpg

2025年11月规定不管是未限定范围的包和范围明确的包,现在都需要认证才可以发布,说明如下:docs.npmjs.com/requiring-2…

最简单的解决方案

使用粒度访问令牌

首先在浏览器登录你的npm账号 www.npmjs.com/login

下面是具体操作步骤

在页面右上角,点击您的个人资料图片,然后点击Access Token

tokens-profile.png

点击Generate New Token

create-token.png

在Token name中输入令牌名称

(可选)在 Description 字段中,输入令牌的描述

(可选)如果您希望此令牌绕过写入操作的 2FA 要求,请选中 Bypass two-factor authentication (2FA) (最好选中绕过)

(可选)ip范围

在Packages and scopes的Permissions选择Read and Write

granular-access-token-packages-scopes.png

(可选)Organizations Permissions

Expiration过期时间最多可选90天

生成令牌

Snipaste_2026-03-09_15-13-28.jpg

在终端绑定令牌

npm logout // 退出当前账号
npm login // 重新登录
npm config set //registry.npmjs.org/:_authToken=你的令牌 // 绑定令牌
npm publish

这样就可以成功发布npm包了

有问题可留言交流