OmniAuthを使ってtwitterで認証をする – part2

以前、「OminiAuthを使ってtwitterで認証をする」の記事を書いたのですが、理解が足りないようで、最近、twitterでのOmniAuthを使った実装をやっているんですが、うまくいっていません。そこで、外国のサイトで有名なrailscastsにあるドキュメント #241 Simple OmniAuth にあたってみました。

このドキュメントでは、はじめにブログシステムが与えれているものと想定して、omniauthを使って認証の実装をやっています。ソースコードをダウンロードできるので、ダウンロードして、ソースコードを見ながら、omniauthを使って認証の実装をする前のブログシステムを再現しました。そして、ドキュメントに従って、認証を実装しました。

いくつか、サンプルで変更した点があるので列挙します。

  • Userクラスでcreate_with_omniauthメソッドを実装するとき、request.env[oamniauth.auth]が、user_infoではなくinfo属性を持っていることを考慮する必要がある。
  • ドキュメントでは、ヘルパーメソッド current_userをapp/hcontrollers/application_conroller.rbで定義しているが、app/helpers/sessions_helper.rbで定義して、それを前者のファイルでincludeした。
  • ブログシステムに記事がない状態で、twitterでアプリ認証後遷移する画面でtrueの単語が表示されてしまうが、原因を探っていない。:-)

ソースコードを

revised-241-simple-omniauth

に公開します。