我想使用访问令牌从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的文档似乎意味着您需要一个真实的用户帐户并且不提及访问权限令牌...
答案 0 :(得分:4)
你的神器版本是什么?
仅在5.4(aka。_authToken)之后支持“npm login”方式,因此,如果您低于该值,则唯一的机会是使用BASIC身份验证(aka。_auth)进行身份验证。
基本身份验证相当容易设置,Artifactory提供了一个简单的入口点,可帮助您设置 .npmrc
启动以下内容(不要忘记将user和encrypted_password替换为您要进行身份验证的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)
.nprmc
文件_auth
,email
和always-auth
->运行以下命令直接从 Artifactory 检索这些字符串:curl -u {用户名}:{API_key} http:// {artifactory_server_domain} / {domain} / artifactory / api / npm / auth
注意:
{用户名}-> Name near Welcome
when you are logged in - take a look at the attached screenshot
{Api_key}-> Copy and paste this key - take a look at the attached screenshot
{artifactory_server_domain}-人工工件的领域。
{domain}-您的URL中附加的域文件(如果存在)
Screenshot describes {artifactory_server_domain} and {domain}
答案 4 :(得分:-2)
对于Windows用户:-
1 /将.npmrc中的 https://registry.npmjs.org 添加到顶部的用户个人资料中:
registry=https://registry.npmjs.org
或2 /在命令下方运行
npm config set registry https://registry.npmjs.org