AndiFB
AndiFB

Reputation: 249

407 Authentication required npm

Hello everyone I´ve been trying to configure and use npm on my enterprise PC without success.

I´ve set proxy, https-proxy, strict-ssl false, registry http://registry.npmjs.org proxy has been set like this "http://user:password@proxy_ip:proxy:port" Where the password has a special character written in urlencode.

npm config get proxy 

returns proxy with credentials as they should be.

I have cleared my npm cache and tried again.

No success.

Any ideas what can be the problem?

Upvotes: 20

Views: 117826

Answers (9)

Joe
Joe

Reputation: 49

When I received that error it was because our security team changed the url of the proxy. Updating to the new url fixed it for me.

Upvotes: 0

Matt Bearson
Matt Bearson

Reputation: 1033

I had this error on my corporate machine and this command in Terminal fixed it:

proxyOn () {
    export PROXY_CREDS=http://localhost:9000
    export ALL_PROXY=${PROXY_CREDS}
    export https_proxy=${PROXY_CREDS}
    export http_proxy=${PROXY_CREDS}
    export HTTP_PROXY=${PROXY_CREDS}
    export HTTPS_PROXY=${PROXY_CREDS}
}

Upvotes: 1

Squibly
Squibly

Reputation: 447

As others mention above you should set both the proxy and https-proxy configuration variables. as below:

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

What no mentions is that the https-proxy variable should point to a proxy url that uses the http protocol NOT the https protocol (as shown above)!! Pretty darned counter intuitive.

Upvotes: 1

Luisma Suárez
Luisma Suárez

Reputation: 11

The character dot . , dont work on http request but &#46 remplace it

  1. Before npm config set proxy http://name.surname:pwrd@host:port
  2. After npm config set proxy http://name&#46surname:pwrd@host:port

Upvotes: 0

Andreas Panagiotidis
Andreas Panagiotidis

Reputation: 3002

if you use windows and cntlm and you get a 407 error from cntlm proxy server, make sure that your PassNTLMv2 in the cntlm.ini is up-to-date, as you have to recreate it, everytime that you change domain password.

Upvotes: 1

Deepa
Deepa

Reputation: 950

We should add proxy with username and password to avoid this error. For example:

  • username: admin
  • password: admin123
  • proxy: 172.10.3.21
  • port: 3128

npm config set proxy http://admin:[email protected]:3128
npm config set https-proxy http://admin:[email protected]:3128

Upvotes: 16

Vishnu C Mohan
Vishnu C Mohan

Reputation: 91

Editing the .npmrc file in user folder worked for me. I set the proxy and npm registry as follows:

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

Note : for usenames and passwords containing special charcters, the characters need to be encoded in the proxy configuration. e.g if username is "user" and password is "1234@user", then the .npmrc file will look like :

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

where, %40 is the encoded form of "@". In my case, the pound symbol(#) was not getting accepted in username or password(Dont know why).

Upvotes: 9

Suhas Gavad
Suhas Gavad

Reputation: 1229

I recommend reading through this article to configure the proxy for 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

Hope this is useful for you!

Upvotes: 19

lautit
lautit

Reputation: 166

Usually, when you are behind a corporate proxy, it is needed to add the domain where you are at. Given that also the characters should be URL encoded, it would look like:

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

Upvotes: 15

Related Questions