ARTIFACTORY: NPM v9中登录行为的改变
最近,NPM引入了一个突破性的变化,即传统身份验证类型被合并为“legacy”,使auth类型默认为“web”。
更多信息可以在npm正式发布说明这JFrog Jira票.
Artifactory版本7.52引入了对Web登录方法的支持。Artifactory应该升级为允许使用Web登录机制的npm登录。
使用npm login命令进行身份验证的用户:
由于这个变化,作为一种变通方法,在对Artifactory执行npm登录时需要添加一个标志。运行在9之前版本的NPM客户端,将使用与前面相同的身份验证命令:$ NPM登录
使用npm版本9的用户需要添加-auth-type =legacy标志来执行登录,将身份验证类型设置为" legacy ":$ NPM login——auth-type=legacy
尝试运行npm登录而不带标志将导致以下错误:npm犯错!代码ENYI
npm犯错!不支持Web登录npm犯错!这个运行的完整日志可以在下面找到:
npm犯错!/root/.npm/_logs/2022 - 11 - 16 - t11_59_45_230z -调试- 0.日志
用户使用.npmrc文件进行身份验证:
用户可以使用存储库的“Set Me Up”部分中提供的.npmrc片段进行身份验证。在这种情况下,Artifactory生成的配置片段不再有效。配置片段将类似于以下内容:注册表= https://elinaf.jfrog/artifactory/api/npm/dev-npm/
_auth=
电子邮件= youremail.com
always-auth = true
在使用上述配置进行身份验证时,尝试安装npm包将导致以下错误:npm犯错!代码ERR_INVALID_AUTH
npm犯错!发现无效的认证配置:' _auth '必须重命名为' //elinaf。用户配置中的Jfrog /artifactory/api/npm/dev-npm/:_auth
npm犯错!请运行“npm config fix”来修复你的配置。npm犯错!这个运行的完整日志可以在下面找到:
npm犯错!/root/.npm/_logs/2022 - 11 - 16 - t12_02_05_084z -调试- 0.日志
运行npm config fix将修复配置并将其更新为使用新格式,其中_auth信息不再在单独的行中显示,而是现在是URL的一部分,如下所示:电子邮件= user@t.com
always-auth = true
注册表= https://elinaf.jfrog/artifactory/api/npm/dev-npm/
/ / elinaf.jfrog artifactory / api / npm / dev-npm /: _auth = < base_64_user:密码>
.npmrc片段也可以通过向以下端点运行cURL请求来检索:美元的旋度https://ART_HOST/artifactory/api/npm/auth
这将返回配置片段,然后需要对其进行修改以匹配新的结构。
注意:已经登录的用户不受影响。
