【问题标题】:npm error E401: Unable to authenticate, need: BASIC realm="Sonatype Nexus Repository Manager"npm 错误 E401:无法验证,需要:BASIC realm="Sonatype Nexus Repository Manager"
【发布时间】:2020-08-20 03:39:33
【问题描述】:

我将 node 版本升级到 12.16.2,将 npm 版本升级到 6.14.4。之后我无法运行npm install,因为我收到了这个错误

 code E401
 npm ERR! Unable to authenticate, need: BASIC realm="Sonatype Nexus Repository Manager"

我什至尝试删除 node_modules 和 package-lock.json 并再次运行 npm install,但没有任何改变。

【问题讨论】:

  • 一个积极的更新:我再次尝试在 npmrc 文件中使用队友的身份验证代码,它成功了!然而,团队中的其他人也面临与我相同的问题,在我们签入 nexus 帐户后,我们所有人显然都具有相同的用户访问级别。不知何故,它只适用于一个用户。但至少现在可以确认这是由于身份验证码而发生的。

标签: node.js npm npm-install


【解决方案1】:

我有类似的问题。我通过将_auth 添加到我的~/.npmrc 来解决它。请参阅doc how to encode your nexus credential。我使用npm config set _auth xxx 添加了编码凭据。

您将无法使用npm config listnpm config get _auth 查看该值。

【讨论】:

    【解决方案2】:

    对我有用的是:

    我删除了 C/users/ 文件夹下的 .npmrc 文件。 并运行 npx vsts-npm-auth -config .npmrc 命令在用户文件夹中创建一个新文件

    【讨论】:

    • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
    【解决方案3】:

    我找到了一条出路。使用这个新的 npm 版本,他们强制执行身份验证以访问某些包。我们意识到我们不需要对我们正在下载的任何包使用身份验证,因此我们拥有的身份验证代码是不必要的。所以我们只是将其删除,一切正常。

    【讨论】:

    • 如果你的意思是 .npmrc 中带有 _authToken 的一行,它也对我有用
    【解决方案4】:

    就我而言,问题是我在同一个 Nexus 中为npm login 命令输入了另一个注册表地址。

    npm login --registry=http://nexus_url:port/repository/wrong_address
    

    登录正确的地址解决了我的问题:

    npm login --registry=http://nexus_url:port/repository/correct_address
    

    【讨论】:

      【解决方案5】:

      我在运行 npm install 时遇到此错误,该 npm install 从位于自托管 Azure DevOps (AzDo) 服务器上的非公共注册表中提取一些依赖项。

      我在项目中有一个 .npmrc 文件,在我的用户配置文件目录中有一个 .npmrc 文件,其中包含以前允许访问的 AzDo 个人访问令牌 (PAT)。 AzDo UI 报告我的令牌仍然有效。

      PS C:\src\app> npm install
      npm ERR! code E401
      npm ERR! Unable to authenticate, need: Basic realm="{INTERNAL_REGISTRY_URL}", Negotiate, NTLM
      

      就我而言,解决方案是重新生成 AzDo PAT 并更新在我的用户配置文件目录中找到的 .npmrc

      【讨论】:

        【解决方案6】:

        对我有用的是运行npm login,然后输入我的用户名、密码和电子邮件以登录到.npmrc 中定义的注册表。然后我继续使用 npm 安装我需要的软件包并且它工作正常。

        【讨论】:

          【解决方案7】:

          我从帖子中运行 set 的命令并添加 nexus “Active realms” 配置文件 “npm Bearer Token Realm”。友情链接:https://help.sonatype.com/repomanager3/system-configuration/access-control/realms 我的问题解决了。

          【讨论】:

          • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review
          【解决方案8】:
          vsts-npm-auth -config .npmrc -F
          

          是我找到的唯一解决方案;

          编辑:确保在之前运行npm install -g vsts-npm-auth

          【讨论】:

            【解决方案9】:
            1. 删除了 C/users/ 文件夹下的 .npmrc 文件
            2. npm set registry=http....
            3. npm set _auth=(login:pass in base64):

            【讨论】:

            • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
            猜你喜欢
            • 1970-01-01
            • 2022-08-11
            • 2021-10-14
            • 2022-08-20
            • 2014-07-05
            • 2016-05-11
            • 2022-12-27
            • 2020-05-10
            • 2021-11-02
            相关资源
            最近更新 更多