文章摘要
......前言
最近打算更新我的Npm包的。结果执行npm publish发布时竟然报了403的错误:
403 Forbidden Two-factor authentication or granular access token with bypass 2fa enable is required to publish packages

原因
一开始还以为是账号密码过期了的问题,然而在尝试重新登录和清除缓存后都无法解决。
后面一登录npm官网,就发现了npm官方通知验证方式变更的消息:


通过公告可以得知:
-
Classic tokens 已被撤销
-
所有粒度令牌默认需要 2FA
-
Automation tokens 成为 CI/CD 和脚本发布的推荐方案
更换新的验证方式
由于npm启用了新的验证规则,所以发布npm包时,必须使用双因素认证(2FA),已启用2FA的账号,发布时需输入动态验证码。
开启双因素认证
进入账号管理(头像->Account),找到Two-Factor Authentication功能开启:

开启后如下:

创建令牌登录
点击Generate New Token生成新的Access Tokens,复制备用:

配置token
在命令行执行语句将token配置到环境变量:
npm config set //registry.npmjs.org/:_authToken=你的令牌字符串
或者直接将令牌加入到.npmrc中:
registry=https://registry.npmjs.org/
//registry.npmjs.org/:_authToken=npm_你的实际令牌字符串
查看配置是否生效:
npm config get //registry.npmjs.org/:_authToken
配置完成后建议重新清除缓存后登录:
## 退出账号
npm logout
## 清除缓存
npm cache clean --force
## 查看登录用户(测试认证)
npm whoami
完成后重新执行npm publish推送,会让你进行双因素认证,认证完成后就可以成功推送:

版权声明
本文依据 CC-BY-NC-SA 4.0 许可协议授权,请您在转载时注明文章来源为 Z次元 ,若本文涉及转载第三方内容,请您一同注明。
评论区
发表评论
这里还没有评论哦
快来发一条评论抢占前排吧
目录
前言
原因
更换新的验证方式
开启双因素认证
创建令牌登录
配置token