在不使用密码的情况下在代理后面访问Windows上的NPM

Ada*_*dam 5 proxy kerberos node.js npm visual-studio-2017

我正在从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
Run Code Online (Sandbox Code Playgroud)

这会将密码存储在NPM配置中的BASE64编码文本中(不好!)

一种替代解决方案是始终为每个命令提供代理设置,以避免存储密码,但这仍然不理想,例如:

npm --without-ssl --insecure --proxy http://user:pass@ip:port install package-name
Run Code Online (Sandbox Code Playgroud)

我尝试过使用CNTLM来存储密码,该方法更安全,但是每次更新密码时都必须更新CNTLM,因此并不理想。

我们可以设置NPM来进行身份验证以像使用Kerberos或其他任何安全方法一样从VS或命令行进行凭据吗?