実行環境はruby1.9.3p0,rails3.2.2,postgres
難易度★★★☆☆
rails3アプリにtwitter,google,yahooでの認証機能が欲しかったのでOmniAuthを使いました。
色々と勉強することが多かったです。以下に補足説明やリンク等をまとめました。
OmniAuthとは?
railsアプリでtwitter, faceBookのような第三者の認証方法を統合する方法です。
サンプルで勉強
まったく利用したことがない人は、ここでサンプルプロジェクトを作成しましょう。
一読して理解できる人はそのまま実装してしまいましょう。
twitter developerに登録
twitter developerに遷移し、create a new applicationで作成するアプリケーション用に新しいapplicationを作成します。これは幾つでも(?)作成できます。
twitterOAuth認証実装
ここのサイトの通りに実装します。詳細に記述されています。
twitterのOAuthについて理解しておくこと
参考サイトを見れば結構すんなりと実装できると思います。OAuthの仕組みを全く理解していなくてもなんとかなります。
しかし、それではまずいです。
OAuthは便利ですが、問題点も多くあります。openIdからOAuth、そしてOAuth2の基本は理解しておきましょう。
以下のサイトで知らないことはきっちりと勉強しましょう。僕は、ノートと問題を作って、繰り返し暗記と学習ができるようにしました。
google, yahooのopenId認証実装
ここのサイトの通りに実装します。詳細に記述されています。
上記のサイトでは、URIが大きすぎるというエラーがでると記載されていましたが、私の環境ではでませんでした。
googleをOAuth2で認証
ここのサイトの通りに実装します。詳細に記述されています。
googleでOAuth2を利用するにはGoogle APIs Consoleを利用できるようにする必要があります。
ここでKEY, SECRETを取得します。
しかし私の環境ではcallback時にURI did not matchがでてしまい、どうしても解決できませんでした。rails以外ならうまくいきます。ここはまだ解決できていません。
私は今回yahooとgoogleはopenIDで認証することにしました。
大事なこと
とにかく連携するソーシャルメディアを使いまくりましょう。
はっきりいって一番大事です。連携するソーシャルメディアで何ができるのか、そして何の情報を取得できるのか。この情報の取得は必要あるのか等等。とにかく使いまくりましょう。
どうしても日々の忙しさにかまけてしまい、利用する側としての時間が少なくなる人は多いでしょう。
私が今回facebook認証を実装しなかたのは、日本で利用するアプリではfacebookは不要と判断したからです。お年寄り専用アプリとかなら必要だと思います。この辺はがっちり利用していないと判断できません。
最後に
googleのOauth2, yahooのOAuth認証はなるべくはやめに実装したいと思います。
その時はまたまとめたいと思います。
それでわ。
参考サイト
- Simple OmniAuth実装
- omniauth-twitterのgithub
- omniauth-facebookのgithub
- Yahoo、GoogleのopenID認証
- OmniAuthでtwitter, facebook, google認証
- omniauth-google-oauth2のgithub
- oauth2-0_googleの実装の参考
- OAuth認証(?)とOpenIDの違い
- 最新動向に追いつくために勉強したこと
- omniauth-googleの実装の参考
0 件のコメント:
コメントを投稿