2012年7月12日木曜日

Ruby on Rails3でtwitter,google,yahooで認証する

実行環境は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認証はなるべくはやめに実装したいと思います。
その時はまたまとめたいと思います。
それでわ。


参考サイト

この記事がお役にたちましたらシェアをお願いします

このエントリーをはてなブックマークに追加

0 件のコメント:

コメントを投稿

Related Posts Plugin for WordPress, Blogger...