作 ▸
Node.jsのrequestでBasic認証つきプロキシ使う時はauthに認証情報を書くんじゃダメ
- 認証情報は
proxy
のURLにhttp://ユーザー名:パスワード@example.com
の形式で含めて書く。 auth
に書くのは、あくまでアクセス先URLの認証情報。
- アクセス先のURL: http://example.com
- プロキシURL: http://111.111.111.111:8080
- プロキシのBasic認証ユーザー: pxuser
- プロキシのBasic認証パスワード: pxpass
だとして……。
↓のように auth
に認証ユーザーとパスワードを書いてて、動かなくてしばらく悩んでた……。
request({
url: 'http://example.com',
method: 'GET',
proxy: 'http://111.111.111.111:8080',
auth: {
user: 'pxuser',
password: 'pxpaxx',
},
}, errorHandler);
でも本当は↓のように、プロキシのURLに認証情報を書かないとダメだった。
request({
url: 'http://example.com',
method: 'GET',
proxy: 'http://pxuser:pxpass@111.111.111.111:8080',
}, errorHandler);
くだらーん!
これが分かったのは、Squidで立てたBasic認証つきプロキシサーバーをrequestで経由させたら、何度やっても「Cache Access Denied.」になってしまったからだ。
でも、以前にNginxで立てたBasic認証付きプロキシは、間違いの方でも通ってたはずなんだけど……。
立て方がおかしかったのかな??