【问题标题】:How should I use artifactory access token for access to npm repo我应该如何使用人工访问令牌来访问 npm repo
【发布时间】:2017-12-12 13:13:34
【问题描述】:

我想使用访问令牌从 CI 环境的人工 npm 存储库中发布和检索。我已经使用 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 存储库的文档似乎暗示您需要一个真实的用户帐户并且没有提及访问权限令牌...

【问题讨论】:

    标签: npm access-token artifactory


    【解决方案1】:

    你的神器版本是什么?

    “npm 登录”方式仅从 5.4(又名 _authToken)开始受支持,因此如果您低于此值,您唯一的机会就是使用 BASIC 身份验证(又名 _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

    将这 3 行复制到您的 .npmrc 中,这应该可以正常工作...

    【讨论】:

    • 谢谢,这是我的问题 :)
    【解决方案2】:
    1. 使用基本身份验证 使用下面描述的步骤,您应该使用命令的输出更改本地 .nprmc 文件
    • 要检索自动生成的下一个字段 _authemailalways-auth -> 运行以下命令直接从 Artifactory 检索这些字符串:

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

    注意事项:

    【讨论】:

      【解决方案3】:

      其他答案中的 _auth 行中断了从 npmjs 检索一些范围包。我发现我需要为我正在使用的一个注册表使用特定的 _auth。在这里查看我的原始答案https://stackoverflow.com/a/57014522/442837

      【讨论】:

        【解决方案4】:

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

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

        之后,您可以使用任何 base64 编码的 username:ACCESS_TOKEN 替换/设置 _auth

        对于作用域包,使用

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

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

        【讨论】:

          【解决方案5】:

          Windows 用户:-

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

          registry=https://registry.npmjs.org
          

          或 2/ 在命令下方运行

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

          【讨论】:

          • 用户询问如何处理他的私有 npm 存储库的身份验证问题。对于很多开发人员来说,切换到公共 npm 注册表不是一个选项,因为私有 IP 存储在私有 npm 存储库中。
          猜你喜欢
          • 2021-06-01
          • 2018-03-24
          • 1970-01-01
          • 2021-08-26
          • 2019-09-25
          • 1970-01-01
          • 2021-10-06
          • 2016-05-28
          • 2014-04-26
          相关资源
          最近更新 更多