我应该如何使用artifactory访问令牌访问npm repo

我应该如何使用artifactory访问令牌访问npm repo,npm,access-token,artifactory,Npm,Access Token,Artifactory,我想使用一个访问令牌从CI环境中的artifactory npm repo发布和检索。我已经使用artifactory API创建了一个承载令牌,但当我尝试在.npmrc中使用该令牌进行访问时,格式为: //mydomain.jrog.io/:_authToken=myveryverylongaccesstoken registry=https://mydomain.jfrog.io/mydomain/api/npm/npm 我总是收到401个错误 此外,尽管可能是另一个问题,但如果我尝试使用

我想使用一个访问令牌从CI环境中的artifactory npm repo发布和检索。我已经使用artifactory API创建了一个承载令牌,但当我尝试在.npmrc中使用该令牌进行访问时,格式为:

//mydomain.jrog.io/:_authToken=myveryverylongaccesstoken
registry=https://mydomain.jfrog.io/mydomain/api/npm/npm
我总是收到401个错误

此外,尽管可能是另一个问题,但如果我尝试使用npm登录和我的实际工件凭据,我会得到响应:

adduser Incorrect username or password
npm WARN adduser You can reset your account by visiting:
npm WARN adduser 
npm WARN adduser     https://npmjs.org/forgot
npm WARN adduser 
npm ERR! code E403
npm ERR! forbidden No oauth npm default login configuration found: org.couchdb.user:myusername

关于访问令牌的artifactory文档明确表示这是设置访问令牌的用例,但是关于设置npm repo alwyas的文档似乎暗示您需要一个真正的用户帐户,而没有提及访问令牌…

您的artifactory版本是什么

“npm登录”方式仅在5.4(aka.\u authToken)之后才受支持,因此,如果您低于该值,您唯一的机会就是使用基本身份验证(aka.\u auth)进行身份验证

基本身份验证非常容易设置,Artifactory提供了一个简单的入口点来帮助您设置.npmrc

启动以下程序(不要忘记用您想要进行身份验证的Artifactory用户帐户替换用户和加密的\u密码)

curl-u用户:加密密码https://mydomain.jfrog.io/mydomain/api/npm/auth

它将输出如下内容

\u auth=YourLongBasicAuthToken
始终auth=true
电子邮件=user@server.com


将这3行复制到.npmrc中,这应该很好…

要生成
.npmrc
的内容,请使用现有用户(如admin)及其密码

curl-uadmin:http:///artifactory/api/npm/auth

之后,您可以使用任何base64编码的
用户名:ACCESS\u令牌替换/设置
\u auth
密钥

对于作用域包,使用

curl-uadmin:http:///artifactory/api/npm/npm-repo/auth/


并使用任何用户和访问令牌设置
.username
。\u password
(base64)

其他答案中的_auth行会中断从NPMJ进行的某些范围内的包检索。我发现我需要为我正在使用的一个注册表使用特定的身份验证。在这里查看我的原始答案

适用于windows用户:-

1/将.npmrc添加到顶部的用户配置文件中:

registry=https://registry.npmjs.org
或2/在下面运行命令

npm config set registry  https://registry.npmjs.org
  • 使用基本身份验证 使用下面描述的步骤,您应该使用命令的输出更改本地
    .nprmc
    文件
    • 要检索自动生成的下一个字段
      \u auth
      email
      always auth
      请运行以下命令直接从Artifactory检索这些字符串:
    curl-u{username}:{API_key} http://{artifactory\u server\u domain}/{domain}/artifactory/api/npm/auth

    注:

    • {username}->

    • {Api_key}->

    • {artifactory\u server\u domain}-您的工件的相应域

    • {domain}-url中域的附加字段(如果存在)


    谢谢,这是我的问题:)用户询问如何处理其专用npm存储库中的身份验证问题。对于许多开发人员来说,切换到公共npm注册表不是一个选项,因为私有npm repo中存储了私有IP。