Cakephp2.Opauthプラグインを使ってTwitterログイン
Opauthプラグインを利用すれば、FacebookログインもTwitterログインも、他にもいろんなソーシャルログインも簡単に実装することができます!
では手順を追って見ていきましょう!
必要なモノを設置していこう!
まず必要な物はこれですね。
- cakephp-opauth
https://github.com/uzyn/cakephp-opauth
ダウンロードして解凍して出てきたフォルダを「Opauth」というファイル名に変更して...
app/Plugin/にぶっこみましょう!!
次はこれ!!
- twitter strategy
https://github.com/opauth/twitter
ダウンロードして解凍して出てきたフォルダを「Twitter」というファイル名に変更して...
先ほどの「Opauth」の中にある「Strategy」というフォルダにぶっこみましょう!!
最後はこれ!!!
- opauth本体
「DownLoad」をクリック!
そして「Opauth core onli」をクリックしてダウンロード!!
解凍したファイルも「Opauth」という名前に変更して、このファイルは「app/Plugin/Opauth/Vendor」のなかにぶっこみましょう!
コードを付け足していこう!
まずはbootstrap.phpに以下のコードを追加しましょう!
CakePlugin::load('Opauth', array('routes' => true, 'bootstrap' => true)); Configure::write('Opauth.Strategy.Twitter', array( 'key' => 'あなたのAPI key', 'secret' => 'あなたのAPI secret' ));
keyとsecretには、それぞれのTwitterアプリで設定されているものを使ってください。
次はroutes.phpです!
Router::connect( '/opauth-complete/*', array('controller' => 'users', 'action' => 'opauthComplete') );
これでOAuthの通信を行った後にUsersコントローラーのopeautnComplete関数にリダイレクトされます。
UsersController.php
public function opauthComplete() { debug($this->data); }
http://localhost/プロジェクト名/auth/twitterで、ツイッターからユーザーの情報が表示されます。
後はこっから必要なデータをデータベースに保存するなりすれば、ログイン機能が実装できます!
Facebookログインも実装したければ、、
ここまで出来ていれば、
- Facebook Stratefy
https://github.com/opauth/facebook
をダウンロードして解凍して、「Facebook」という名前に変えて「Strategy」にぶっこんで、
http://localhost/プロジェクト名/auth/facebookでユーザー情報が収得できます。
僕がハマったところ
- Twitterアプリの設定でコールバックURLは必ず設定しましょう。今回の場合はローカルなので、http://127.0.0.1/プロジェクト名/auth/callbackがコールバックURLになります。
- AppControllerにSecurityコンポーネントを設定している場合は引っかかってしまいます。今回の場合であればこれを追加しましょう。
UsersController.php
public function beforeFilter() { if($this->params['action'] == 'opauthComplete') { $this->Security->csrfCheck = false; $this->Security->validatePost = false; } }
cakephp勉強するならこの本がオススメです!
CakePHP2 実践入門 (WEB+DB PRESS plus)
- 作者: 安藤祐介,岸田健一郎,新原雅司,市川快,渡辺一宏,鈴木則夫
- 出版社/メーカー: 技術評論社
- 発売日: 2012/09/29
- メディア: 単行本(ソフトカバー)
- 購入: 5人 クリック: 165回
- この商品を含むブログ (7件) を見る