Omniauthを使ったPadrinoアプリのチュートリアル 〜Mongoidを添えて
Blog Padrino and OmniAuth Overview - Padrino Ruby Web Framework でOmniauthを知り、便利そうだな〜と思ってから早14日。ようやく動かしてみました。
ActiveRecordの代わりにMongodb、ORMにはMongoidを使っています。基本的には上記ブログ記事にしたがって作業をすればいいのですが、Mongoidを使ったことによる変更点がいくつか。
Mongoidつかうための変更
プロジェクト作成
% padrino gen project omniauth --orm mongoid --tiny
ORMにMongoidを指定してプロジェクトを作成します。
モデル
PadrinoのAuthenticationHelperで使われているfind_by_idを定義しておきます。
コントローラ
もちろんDBにアクセスするところも変わります。DBに既存かどうかチェックする、なかったら新規作成。もっとMongoidらしい書き方もあるとは思いますが、今回は RailsApps/rails3-mongoid-omniauth · GitHub を参考にしました。
環境変数ENVを使う
twitterのoathを使う場合にはConsumer secretとConsumer keyがそれぞれ必要となります。冒頭のPadrinoブログに従うとコード中に直書きしていますが、これは避けたいですよね。
今回つくったPadrinoアプリの動作確認にはPowを使ったのですが、Powでは .powenv というファイルを使うことによって、環境変数ENVを設定することができます。Padrinoアプリのコードからはこの環境変数をよみこむようにしてやれば、アプリのコードとoauthに必要な情報を分離してやることができますね。
ちなみに、この環境変数ENVを使う方法はHerokuでもそのまま使えるので便利ですよね!
参考
[rails][pow] Powを使い倒す - mat_akiの日記
.powenv などPowの使いこなし
HerokuでWebアプリ開発を始めるなら知っておきたいこと (5)環境変数ENV - アインシュタインの電話番号☎
herokuで環境変数ENVを使うおはなし