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

时间:2017-07-08 08:48:05

标签: npm access-token artifactory

我想使用访问令牌从CI环境中的神器npm repo发布和检索。我已经使用artifactory API创建了一个Bearer令牌,但是当我尝试使用它来访问.npmrc中的格式:

//mydomain.jrog.io/:_authToken=myveryverylongaccesstoken
registry=https://mydomain.jfrog.io/mydomain/api/npm/npm

我总是收到401错误。

此外,虽然可能是一个不同的问题,如果我尝试使用npm login和我的实际神器凭据,我会得到回复:

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

围绕访问令牌的神器文档明确说明这是设置访问令牌的用例,但围绕设置npm repo alwyas的文档似乎意味着您需要一个真实的用户帐户并且不提及访问权限令牌...

5 个答案:

答案 0 :(得分:4)

你的神器版本是什么?

仅在5.4(aka。_authToken)之后支持“npm login”方式,因此,如果您低于该值,则唯一的机会是使用BASIC身份验证(aka。_auth)进行身份验证。

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

启动以下内容(不要忘记将user和encrypted_pa​​ssword替换为您要进行身份验证的Artifactory用户帐户)

curl -u user:encrypted_password https://mydomain.jfrog.io/mydomain/api/npm/auth

它将输出类似

的内容

_auth = YourLongBasicAuthToken always-auth = true email = user@server.com

.npmrc 中复制这3行,这应该可以正常运作......

答案 1 :(得分:0)

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

curl -uadmin:<PASSWORD> http://<ARTIFACTORY_SERVER_DOMAIN>/artifactory/api/npm/auth

之后,您可以使用任何以base64编码的_auth

替换/设置username:ACCESS_TOKEN

对于作用域软件包,请使用

curl -uadmin:<PASSWORD> http://<ARTIFACTORY_SERVER_DOMAIN>/artifactory/api/npm/npm-repo/auth/<SCOPE>

并使用任何用户和访问令牌设置..username.._password(base64)

答案 2 :(得分:0)

其他答案中的_auth行中断了从npmjs进行某些范围的软件包检索。我发现我只需要为使用的一个注册表使用特定的_auth。我选择了密码而不是令牌,但是方法与https://stackoverflow.com/a/57014522/442837

相同

答案 3 :(得分:0)

  1. 使用基本身份验证 使用下面介绍的步骤,您应该使用命令的输出更改本地.nprmc文件
  • 要检索自动生成的下一个字段_authemailalways-auth->运行以下命令直接从 Artifactory 检索这些字符串:

curl -u {用户名}:{API_key} http:// {artifactory_server_domain} / {domain} / artifactory / api / npm / auth

注意:

答案 4 :(得分:-2)

对于Windows用户:-

1 /将.npmrc中的 https://registry.npmjs.org 添加到顶部的用户个人资料中:

registry=https://registry.npmjs.org

或2 /在命令下方运行

npm config set registry  https://registry.npmjs.org