我在Visual Studio 2017和命令行中使用NPM。
根据我的调查,NPM没有使用Windows身份验证进行身份验证来访问http://registry.npmjs.org/,因此npm被公司代理阻止。
要解决问题,下面的解决方案可以正常工作但具有安全漏洞:
npm config set registry http://registry.npmjs.org/
npm config set http-proxy http://user:pass@ip:port
npm config set https-proxy http://user:pass@ip:port
npm config set proxy http://user:pass@ip:port
npm set strict-ssl false
这会将密码存储在NPM配置中的BASE64编码文本中(不太好!)
另一种解决方案是始终为每个命令提供代理设置以避免存储密码,但这仍然不理想,例如:
npm --without-ssl --insecure --proxy http://user:pass@ip:port install package-name
我已经尝试过CNTLM,它在存储密码方面更安全,但每次更新密码时都必须更新CNTLM,因此不太理想。
我们是否可以设置NPM进行身份验证以使用Kerberos或任何其他安全方法从VS或命令行继续执行凭据?