前回の、 【Node.js】OAuth認証でPassportが最強に使いやすい の続きです。今回は準備から実際にコーディングのところまで説明します。
検証、制作環境など Mac OS 10.6 ターミナル.app node.js -v v0.8.4 express version 3.0.0rc3 jadeを使いたいと思います。 node-oauth node_modules localhost:3000で検証 さっそく準備をします。 # expressでnode-passportとう名前のディレクトリを作ります。 # 名前はなんでもいいですが、今回はそうします。 # -sでオプションでセッションをつけます。 $ express -s node-passport # node-passportに移動してnpm installします。 $ cd node-passport $ npm install # passport, passport-facebook, passport-twitterのmoduleをインストール。 $ npm install passport $ npm install passport-facebook $ npm install passport-twitter これで準備完了です。app.jsを開いて、コードを書き足していきます。
app.js 1
2
3
4
5
まず何が最強なのかは対応しているSNSがズラッと! Local (username and password) BrowserID OpenID OAuth (OAuth 1.0 and 2.0) SAML by Henri Bergius WS-Federation + SAML 2.0 by Auth10 WebID by Baptiste Lafontaine 37signals 500px by Jeremy Benaim AngelList AOL App.net by Michael Owens Bitbucket DailyCred by Hank Stoever Digg Dropbox Dwolla Evernote Facebook FamilySearch Fitbit Flattr by Johan Uhle Flickr by Johnny Halife Force.com (Salesforce, Database.com) by Joshua Birk Foursquare FreedomWorks by Carlos Rodriguez Geoloqi GitHub Goodreads Google (OpenID) Google (OAuth 1.
いままで、FlashのActionScript3.0や、Ajaxを使ったり、PHPなんかも駆使してOAuthを実装していました。node.jsではnode-oauthというモジュールを使えば、いとも簡単にOAuth認証ができてしまいます。いとも簡単とはいえ、はまったところがありましたので、今回はnode-oauthを使ってTwitterをOAuth認証する方法と、はまってしまったポイントを抑える内容にしたいと思います。下記の参考サイトに載っていたソースを元に補足します。
参考サイト - http://moonlitscript.com/post.cfm/how-to-use-oauth-and-twitter-in-your-node-js-expressjs-app/ - ciaranj/node-oauth · GitHub - https://github.com/ciaranj/node-oauth
検証、制作環境など Mac OS 10.6 山ライオンって強いの?(´・ω・`) ターミナル.app node.js -v v0.8.4 express version 3.0.0rc3 node-oauth node_modules localhost:3000で検証 TwitterのOAuth認証ができるまでの手順 dev.twitter.comで「Create an app」します。 Website:にはlocalhost:3000を入力したいところですが、Twitterの入力フォームで弾かれるので、localhostと同じURLのhttp://127.0.0.1:3000を入力します。 Callback URL:には、http://127.0.0.1:3000/auth/twitter/callbackと入力しておきます。 必要な情報を入力して、Consumer keyとConsumer secretを取得します。※1 ターミナル.appを開いて、express -sセッションオプションを付けて雛形を作ります。※2 node-oauthをnpm installします。 app.jsを開いて、コーディングします。 $ node app.js でサーバーを立ちあげてアクセスします。 ※1:Consumer keyとConsumer secretの扱いは大切に。 ※2:expressでセッションを使うオプションを使うところが重要なポイントです。 node-oauthのインストール方法 やはり毎度おなじみnpmを使います。expressを使って雛形を作るまでやってみましょう。
//-e はejs、-sはセッションを使うオプション $ express -e -s oauth_sample create : oauth_sample create : oauth_sample/package.json create : oauth_sample/app.