こうこく
作 ▸

Node.jsのrequestでBasic認証つきプロキシ使う時はauthに認証情報を書くんじゃダメ

  • 認証情報は proxy のURLに http://ユーザー名:パスワード@example.com の形式で含めて書く。
  • auth に書くのは、あくまでアクセス先URLの認証情報。

だとして……。

↓のように 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認証付きプロキシは、間違いの方でも通ってたはずなんだけど……。

立て方がおかしかったのかな??

この記事に何かあればこちらまで (非公開)