簡體   English   中英

407 需要認證 npm

[英]407 Authentication required npm

大家好,我一直在嘗試在我的企業 PC 上配置和使用 npm,但沒有成功。

我已經設置了代理,https-proxy,strict-ssl false,注冊表http://registry.npmjs.org代理已設置為“ http://user:password@proxy_ip:proxy:port ”用 urlencode 編寫的特殊字符。

npm config get proxy 

返回具有憑據的代理,因為它們應該是。

我已經清除了我的 npm 緩存並再次嘗試。

沒有成功。

任何想法可能是什么問題?

我建議通讀這篇文章來為 npm 配置代理。 http://wil.boayue.com/blog/2013/06/14/using-npm-behind-a-proxy/

  • npm config set proxy http://proxy.company.com:proxyport

  • npm config set http-proxy http://proxy.company.com:proxyport

  • npm config set https-proxy http://proxy.company.com:proxyport

希望這對你有用!

通常,當您使用公司代理時,需要添加您所在的域。 鑒於字符也應該是 URL 編碼的,它看起來像:

https://domain%5Cusername:password@proxy:port

我們應該添加帶有用戶名和密碼的代理以避免此錯誤。 例如:

  • 用戶名:admin
  • 密碼:admin123
  • 代理:172.10.3.21
  • 端口:3128

npm config set proxy http://admin:admin123@172.10.3.21:3128
npm config set https-proxy http://admin:admin123@172.10.3.21:3128

編輯用戶文件夾中的 .npmrc 文件對我有用。 我將代理和 npm 注冊表設置如下:

proxy=http://username:password@proxy:port/
https-proxy=http://username:password@proxy:port
registry=http://registry.npmjs.org/  

注意:對於包含特殊字符的用戶名和密碼,需要在代理配置中對字符進行編碼。 例如,如果用戶名是“user”,密碼是“1234@user”,那么 .npmrc 文件將如下所示:

proxy=http://user:1234%40user@proxy:port/
https-proxy=http://user:1234@user@proxy:port
registry=http://registry.npmjs.org/ 

其中,%40 是“@”的編碼形式。 就我而言,用戶名或密碼中沒有接受英鎊符號(#)(不知道為什么)。

如果您使用 windows 和 cntlm 並且從 cntlm 代理服務器收到 407 錯誤,請確保 cntlm.ini 中的 PassNTLMv2 是最新的,因為每次更改域密碼時都必須重新創建它。

字符點。 , 不要處理 http 請求但 &#46 替換它

  1. 在 npm 配置設置代理http://name.surname:pwrd@host:port之前
  2. npm 配置后設置代理 http://name&#46surname:pwrd@host:port

正如上面其他人提到的,您應該同時設置代理和 https-proxy 配置變量。 如下:

https-proxy=http://userName:password@urlOfYourProxy:8080/

沒有提到的是 https-proxy 變量應該指向使用 http 協議而不是 https 協議的代理 url (如上所示)! 相當該死的反直覺。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM