株式会社スマレジの開発部でスマレジのサーバサイドを作っています

非常に横着にCakePHP2でOAuthを触ってみた

こんにちは!株式会社スマレジ、開発部のmasaです。

 

本格的に寒くなってきましたねー。僕はめんどくさがって今週は長袖のシャツで通しましたが、そろそろ衣替えしないとだめな感じです。(服かわんと・・・)

 

今日は、OAuthに触ってみたので、そのまとめです。

 

OAuthって?

簡単に言うと、SNSのアカウント情報をほかのアプリに共有するときに走る認証です。

↓みたいな画面がでてくるのが、OAuth認証です。

f:id:masa2019:20191103225220p:plain

OAuth認証twitter

OAuth認証はいわゆる国際規格ではなく、SNS事業者から提供されている業界標準的な方式なので、コロコロ・・・とまではいいませんが、不定期に認証方式やSNS事業者ごとの連携方法が変わります。

qiita.com

僕はTwitterアカウントでSSOしたくて、上の記事を今回は利用しましたが、いわゆるBOT対策なのか、認証に必要な入力情報が異様に多く(しかも全部英語入力)、開発者用アカウントを取得するだけで結構疲れました。。。

 

CakePHP2.xでOAuthを横着に動かす

弊社プロダクトが一部CakePHP2.x系を利用しているので、勉強もかねて軽く触ってみているのですが、それを使って認証をしてみました。

ただ、「とりあえず、ローカルでtwitterの認証画面がでてきて、OKしたらどんなのがとれるんかなー」くらいのノリでやっただけなので、非常に雑な方法です。

ちなみにトークンの取得やらは上のリンクを見てください。ここでは書きません。

1. twitterOAuth認証のサンプルプログラムを取得

僕がやったときは、以下のサイトを参考にしました。

wepicks.net

サンプルプログラムのgithabは↓

github.com

2. ダウンロードしたサンプルをapp/webrootに直置き

自分でやっておいてアレですが、これはひどい

ちゃんと作るなら、サンプル見ながら、componentに焼き直して、エンドポイント作成・・・というのが真っ当なんだろうけど、さくっと動かすにはめんどくさかったんです、はい。

webroot直下に置けば、ルーティングされないため、直接そのURLをたたくことで簡易エンドポイントになります。サンプルプログラムでいうところのlogin.phpがそれにあたります。

3. Twitter Developerで認証後のリダイレクト先を設定

上記のサンプルプログラムや解説にも載ってますが、リダイレクト先をサンプルプログラム内のmember.phpに向けます。

以上のステップを完了して、エンドポイントをたたいて、許可をすると・・・

f:id:masa2019:20191103232823p:plain

とれてるー!って黒塗りやないかい

こんな感じで取れます。(member.phpは帰ってきた内容をvar_dumpしているページ)

このほかにも最近の自分のつぶやきなんかも一緒に撮れているのが確認できます。

 

というわけで、簡単OAuthでした。