hakobera's blog

技術メモ。たまに雑談

http-proxy でTwitter 認証をローカル環境でのテストをちょっと便利にする方法

Node でWebアプリでTwitter 認証をローカルでテストする時に一番問題になるのは Callback URL にポート番号 "localhost" (8/1 コメントより "127.0.0.1" なら指定できる。) が指定できないことだと思う。回避策としては、hosts を書き換えて、ポート80 でサーバを起動するか、Apache とか、nginx とかをいちいち立てたり、ルールを書き換えるという手がある。が、Mac だと前者は起動時に root 権限が必要でパスワード入力が面倒だし、後者はめんどくさい。

そんな時に、hosts を書き換えた上で、http-proxy を使えば良い。

Mac OS X で hosts の書き換えは Hoster を使うと便利。
RedWinder::MacApp::Hoster

こんな感じの proxy.js を書く

var httpProxy = require('http-proxy');

var options = {
  hostnameOnly: true,
  router: {
    'myhost.com': '127.0.0.1:3000'
  }
}

var proxyServer = httpProxy.createServer(options).listen(80);

あとは開発を始める前に、一回だけ proxy.js を起動しておくだけ。