blog.bouzuya.net

2013-12-23 Passportを読む

passportを読む。passportはexpress互換の認証ミドルウェア。通常のform認証やOpen IDやOAuthなどに対応している。今回はTwitter/GitHubのOAuth認証を組み込みたいので、これを検討した。

具体的にはpassport-twitterpassport-githubを使った。割と手軽に実装できるので、なかなか良さそう。

簡単に説明すると、passportはexpressのためのミドルウェアを提供してくれる。個々の認証の実装はストラテジーモジュールがあるので、それをpassportに組み込んで使う。デフォルトではreq.userに認証情報を格納してくれる。セッションへの格納なども制御できる。 詳細はREADMEにもあるが、passport-localexampleが分かりやすい。

今回の使いかたでは、サービス用のアカウントとしてTwitterアカウントを使い、その他にGitHubのアカウントを紐付けておく。認証として使うTwitter部分は素直な実装で良いのだけれど、GitHubについては対応しづらかった。今回は強引にsession:falseオプションを使って、sessionにはTwitterの認証情報・req.userにはGitHubの認証情報という状況をつくって対応した。何がおかしいのか伝わらないと思うけど、そこそこいびつな対応だと思う。

サービス開発の進捗だけど、web部分の動きは一通りできていて、あとはデザイン。workerについては更新はできるのだけれど、キューに入れたりができてなくって、そのあたりはまだ。間違いなく利用者の少ないサービスだから、こそこそと作って、遊ぼうと思う。

18 min.