几个月前,我在 Azure Artifacts 中创建了一个私有 npm 源。使用此提要进行身份验证工作正常。
最近,其他人已经开始使用此提要,但使用他们从 Azure Artifacts 生成的令牌对他们来说身份验证不起作用。npm安装时出现以下错误
npm 错误!无法进行身份验证,您的身份验证令牌似乎是
无效的。npm 错误!要更正此问题,请尝试再次登录:
npm 错误!npm 登录
在 npm 调试日志中有这个错误
详细堆栈错误:无法验证,需要:Bearer,Basic realm="{{redacted url}}",NTLM
看来,我们放在全局 .npmrc 文件中的身份验证令牌的结构在 Azure Artifacts 中发生了变化
从:
; Treat this auth token like a password. Do not share it with anyone, including Microsoft support. This token expires on or before 27/02/2020.
; begin auth token
//{{redacted URL}}/_packaging/{{redacted user name}}/npm/registry/:_authToken={{redacted token string}}
//{redacted URL}}/_packaging/{{redacted user name}}/npm/:_authToken={{redacted token string}}
; end auth token
到
; Treat this auth token like a password. Do not share it with anyone, including Microsoft support. This token expires on or before 14/04/2020.
; begin auth token
//{{redacted url}}/npm/registry/:username={{redacted username}}
//{{redacted url}}/npm/registry/:_password={{redacted password}}
//{{redacted url}}/npm/registry/:email=npm requires email to be set but doesn't use the value
//{{redacted url}}/_packaging/{{redacted username}}/npm/:username={{redacted user name}}
//{{redacted url}}/_packaging/{{redacted username}}/npm/:_password={{redacted password}}
//{{redacted url}}/_packaging/{{redacted username}}/npm/:email=npm requires email to be set but doesn't use the value
; end auth token
当使用第二个令牌(或者实际上是我现在从 Azure Artifacts 生成的任何令牌)时,我们不能npm install
,我们得到上面显示的错误。如果其他人使用与我相同的令牌(以旧格式),则可以正常工作。但是这个令牌很快就会过期。
我尝试提供一个电子邮件地址而不是字符串“npm 需要设置电子邮件但不使用该值”,但这也不起作用。
这可能无关,但我们最近从 tfs 版本 16.131.28507.4 升级到 Azure Devops Server 版本 Dev17.M153.3。
有谁知道为什么身份验证令牌格式发生了变化?和/或如何使新令牌与我的私人提要一起使用?
npm 版本:6.13.0
节点版本:10.12.0
Azure Devops 服务器版本:Dev17.M153.3