結構前ですが、練習でなんとなく作っていたWebサービスでTwitterやFacebookのアカウントでログインさせたい。
いわゆるOAuth認証を導入してみようと思って使ってみたのが「HybridAuth」というPHPのライブラリです。
調べてみたところ、OAuth認証を簡単にしてくれるライブラリで一番シンプルなのが「HybridAuth」らしい。
CakePHPやWordPressのプラグインもあるようで素敵です。
PHPに関しては独学なうえ別に仕事で使ってる訳でもないので自信がないけど挑戦してみました!
1から10までお世話になったのはこちらの記事。とてもわかりやすく参考になりました。ありがとうございます!
シンプルなOAuth認証ライブラリ「HybridAuth」を試してみた | Mach3.laBlog
1. とりあえずダウンロード!
公式サイトからとりあえずダウンロード!
HybridAuth, Open Source Social Sign On PHP Library
DownloadページにあるCore libraryをダウンロードします。
examplesフォルダも一緒に入っているので、勘の良い人ならexampleのファイル見ただけでなんとなくコピペしていける気がします。
で、僕もあまり詳しくないのでとりあえず”authenticationフォルダ”をそのままサイト階層につっこみました。
2. hybridauth/config.phpにサービス利用に必要な情報を入力
authenticationフォルダに入ってるhybridauth/config.phpを開いて、OAuth認証を使いたいサービスを列挙します。base_urlには/hybridauth/までのパスを入力。providersには、examplesに入っているものを参考に使用サービスを列挙して行きます。
"base_url" => "アップするサイトのURL/hybridauth/"
Facebookを認証に使うために必要なもの
"Facebook" => array ( "enabled" => true, "keys" => array ( "id" => "自分のデベロッパーID", "secret" => "自分のシークレット" ), "scope" => " ", )
ほかにもTwitterやGoogleなんかでも使える。よりどりみどりです。
3. ログイン用のphpファイルを用意する
ここもexamplesからコピーするのでほぼ大丈夫だと思います。
examplesのhello_world/index.phpの中身をコピーしてきて、下記の部分を書き換えればそのまま使えました。
ここと、
// config and includes $config = dirname(__FILE__) . 'サイトのパス/hybridauth/config.php'; require_once( "サイトのパス/hybridauth/Hybrid/Auth.php" );
ここ、
$adapter = $hybridauth->authenticate( "利用サービス" );
hellow_worldの↑の行の下ではユーザープロフィールなどを取得してますので、それに習って自分の取得したい値を代入していくのが良いでしょう。
僕はここでgetUserProfile()から名前(displayName)やプロフィール画像(photoURL)を取得して、サービスのログイン時に使用するような仕組みにしました。
も少し細かいこともわかったら後々追記するかもです。では。