狠狠撸

狠狠撸Share a Scribd company logo
翱辫补耻迟丑ライブラリによる
                        Twitter,Facebook認証について
                     2013-03-23 FuelPHP勉強会 東京 資料


Twitter:@mycb750
Blog:http://to-developer.com/blog
まずはOAuthとは?
対象アプリケーションの認証を代理に行ってくれる認証プロ
トコル。
代理プロバイダは信頼度が高くなくてはいけない。主に
Facebook,Twitter,Googleが対応
メリット:
ID?PWを直接預けないこと、 事前にアプリに渡す権限を確
認できるためセキュアな認証になる
翱础耻迟丑の动作构成
                  コンシュマーキーとコンシュマ
                  シークレットを送信

  OAuthサービス                           Oauth対応
   プロバイダ                            アプリケーション

                  承認されたトークンを受取る



ID:                    アプリケーションにアクセス
                                          ユーザはアプリケーションへ
                                          正式リダイレクト
PW:


ユーザの意思でアプリ認証の   アプリケーションは一度承認を得ると
   「同意」を行う                             ユーザ
                  ユーザの意思での拒否または
                  期限が切れるまでの間は、
                トークンを使用してログインが続く
                  ※承認処理は基本初回のみ
Opauthとは
  OAuthをPHPで実装することは比較的簡単に実装可能であ
  るが更に簡単に実装できるライブラリがOpauthである。

    実装は5分
公式サイト
http://opauth.org/
Opauth対象のフレームワーク
?   FuelPHP (maintained by andreoav)
?   vanilla (plain) PHP applications (of course)
                                                       提供している開発者が違うため、
?   CakePHP (maintained by uzyn)                    フレームワークにより実装方法が違った
?   CodeIgniter (maintained by destinomultimedia)     り改善されていないバグなどがある
                                                           場合がありそう
?   CodeIgniter (maintained by mcatm)
?   Laravel (maintained by FakeHeal)
?   PrestaShop (maintained by Onasusweb)
?   Silex (maintained by icehero)
?   Yii Framework (maintained by kahwee)
?   Zend Framework 2 (maintained by lorenzoferrarajr)
対象プロバイダ
?   Bitbucket        fancyguy/opauth-bitbucket
?   Disqus           rasa/opauth-disqus
?   Do     pocket7878/opauth-do
?   Facebook         opauth/facebook
?   Flickr pocket7878/opauth-flickr
?   Foursquare       pocket7878/opauth-foursquare
?   GitHub           opauth/github
?   Google           opauth/google
?   Instagram        muhdazrain/opauth-instagram
?   LinkedIn         opauth/linkedin
?   (Windows) Live opauth/live
?   mixi ritou/opauth-mixi
?   OpenID           opauth/openid
?   PayPal           24hours/opauth-paypal
?   Sina Weibo (新浪微博)            dgrabla/opauth-sinaweibo
?   Twitter          opauth/twitter
?   VKontakte        dgrabla/opauth-vkontaktp
?   Yahoo! Japan     ritou/opauth-yahoojp
OpauthのFuelPHP取り込み情報

FuelPHPコード:https://github.com/andreoav/fuel-opauth

上記サイトのREADMEの通りで実装可能

技術ブログから参考
Facebook認証実装:http://to-developer.com/blog/?p=424
Twitter認証実装:http://to-developer.com/blog/?p=455
Opauth実装(今回はFacebook)
実装方法:
1.Facebook管理者ページの設定
2.プロジェクトにOpauthライブラリを取り込む
3.opauth.php設定ファイルの作成
4.config.phoの設定
5.コントローラファイルの作成
※「2.」以降は公式サイトREADMEに書いてある4手順
1.Facebook管理者ページの設定
 Facebook開発者ページからアプリ登録を行い、「AppID
  「App Secret」を取得する。
 [Facebookでログインするウェブサイト]の[Webサイト]
  は手順5で作成するController_AuthクラスのAction_Login
  メソッドにストラテジ文字列を引数としたアドレスがロ
  グインページとなるので以下のようにする。
 http://[サイトパス]/auth/login/facebook/
 ※ローカル環境の実行の場合はlocalhostで問題なし
 今回「http://localhost/basedemo/auth/login/facebook/」
  を設定する
Developer:https://developers.facebook.com/apps
2.プロジェクトにOpauthライブラ
リを取り込む
?Gitからcloneで取得
cd basedemo/fuel/packages/
git clone git://github.com/andreoav/fuel-opauth.git opauth

※zipファイルでダウンロードしてフォルダをパッケージ配
 下に配置しても同様
3.opauth.pho設定ファイルの作成
opauth/config/opauth.phpを/fuel/app/config/へコピーする

 ここで「1」でopauth.phpへ取得した「AppID「App
 Secret」を設定する

今後プロバイダを追加する場合にはこのファイルへプロバ
 イダを追加すれば良い
4.config.phpの設定

 Config.phpにopauthをパッケージとして読み込む設定を
 する
5.コントローラファイルの作成
auth.phpを[/fuel/app/classes/controller]へ新規作成する
動作確認
「http://[ドメイン名]/[アプリ名など]/auth/login/facebook/」
 を実行してfacebookのログインページに遷移すればOK。
 あとはログインして完了すると「OK: Auth response is
 validated.」が表示されれば成功。
 画面上はfacebookからのレスポンス情報が表示される
最後に
その他ストラテジの追加は下記公式サイトよりストラテ
ジファイルをダウンロードして配置して、config設定を
行い多少修正すれば、さらに早く実装が可能
 個人的にはFacebook,Twitterを実装しました。
 ※ブログ参考
 Opauthライブラリの場合、認証以外のAPI呼び出し等
を実装する場合には自前で用意する必要がある。
 この他にもライブラリは存在するため、いろいろ調べ
てから使うのが良いかと思います。
 ただ実装の速度では他のライブラリよりも早いはずで
す。

More Related Content

翱辫补耻迟丑ライフ?ラリによる迟飞颈迟迟别谤,蹿补肠别产辞辞办认証について