SlideShare a Scribd company logo
FuelPHP Advent Calender2012

              FuelPHP用ソーシャルログイン専用認証パッケージ
                DsAuthでNinjAuthをもっと簡単に利用する
                            の蛇足


                      Sohei Iwahori(@EGMC)
                   2013-03-23 FuelPHP勉強会東京




13年3月23日土曜日
who?
              @EGMC

               http://egmc.me/

              しごと




              こじん




13年3月23日土曜日
DsAuth?
              https://github.com/egmc/fuel-dsauth

              fuel-ninjauthに完全依存したOAuthログイン認
              証パッケージ

              (twitter|facebook|github)でログインとかのア
              レ

              MITライセンス


13年3月23日土曜日
like this




13年3月23日土曜日
デモはここ



              http://dsauth-sample.eg2mix.com/




13年3月23日土曜日
バックナンバー

              FuelPHP 勉強会 東京 vol.2でOAuthログインの発表をしてきた

                https://speakerdeck.com/egmc/fuel-oauth

              FuelPHP用ソーシャルログイン専用認証パッケージDsAuthでNinjAuth
              をもっと簡単に利用する

                http://dasalog.eg2mix.com/fuel-advent2012-dsauth/




13年3月23日土曜日
オプションの補足1


              ユーザー名の取り扱い

               ユーザー名は被る可能性がある




13年3月23日土曜日
always_confirm_username


               新規登録時に必ずユーザー名の入力を強制

               オフると基本的にOAuthで認証したユーザー名
               を使います




13年3月23日土曜日
allow_duplicated_username


              重複ユーザー名を許容

              always_confirm_usernameがオフで
              allow_duplicated_usernameがオンになってると
              重複した時だけ入力ページを表示




13年3月23日土曜日
オプションの補足2



              facebookイメージURLの変更




13年3月23日土曜日
auto_modify_userinfo

                今のところやっているのはfacebookのユーザー
                イメージURLを書き換えるだけ


         if (Config::get('dsauth.auto_modify_userinfo')) {
              // this will be removed if facebook image url has no token
              if (strpos($user_to_resgister['image'], 'https://graph.facebook.com/me/picture') !== false) {
                    $user_to_resgister['image'] = "https://graph.facebook.com/{$user_to_resgister['uid']}/
         picture?type=normal";
              }
         }




13年3月23日土曜日
なんで?


              fuel-oauth2が渡してくるfacebookのユーザーイ
              メージURLにOAuthトークンがくっついてくる
              から




13年3月23日土曜日
ここですね

              https://github.com/fuel-packages/fuel-oauth2/blob/
              master/classes/provider/facebook.php
               !    public function get_user_info(Token_Access $token)
               !    {
               !    !    $url = 'https://graph.facebook.com/me?'.http_build_query(array(
               !    !    !    'access_token' => $token->access_token,
               !    !    ));

               !    !    $user = json_decode(file_get_contents($url));

               !    !    // Create a response from the request
               !    !    return array(
               !    !    !    'uid' => $user->id,
               !    !    !    'name' => $user->name,
               !    !    !    'nickname' => isset($user->username) ? $user->username : null,
               !    !    !    'email' => isset($user->email) ? $user->email : null,
               !    !    !    'image' => 'https://graph.facebook.com/me/picture?
               type=normal&access_token='.$token->access_token,
               !    !    !    'urls' => array(
               !    !    !       'Facebook' => $user->link,
               !    !    !    ),
               !    !    );
               !    }




13年3月23日土曜日
その他



              fuel-oauth2はallow_url_fopenがオンになってな
              いと動かないよ




13年3月23日土曜日
なんで?



              httpリクエストにfile_get_contentsを使ってるか
              ら




13年3月23日土曜日
とのことです


              https://github.com/fuel-packages/fuel-oauth2/
              commit/
              f733cd8de957918edef2e0aed8d086902dc1f4fe




13年3月23日土曜日
気をつけましょう




13年3月23日土曜日
その他2


              fuel-ninjauthのレポジトリが移動してました

               https://github.com/philsturgeon/fuel-ninjauth




13年3月23日土曜日
その他3


              Fuel1.5系でDsAuthを動かそうとしたのですが
              マイグレーションで絶賛こけております
              (パッケージが見つけられてない)




13年3月23日土曜日
なんで?



              調査中です




13年3月23日土曜日
以上となります




13年3月23日土曜日

More Related Content

Fuelphptokyo201303

  • 1. FuelPHP Advent Calender2012 FuelPHP用ソーシャルログイン専用認証パッケージ DsAuthでNinjAuthをもっと簡単に利用する の蛇足 Sohei Iwahori(@EGMC) 2013-03-23 FuelPHP勉強会東京 13年3月23日土曜日
  • 2. who? @EGMC http://egmc.me/ しごと こじん 13年3月23日土曜日
  • 3. DsAuth? https://github.com/egmc/fuel-dsauth fuel-ninjauthに完全依存したOAuthログイン認 証パッケージ (twitter|facebook|github)でログインとかのア レ MITライセンス 13年3月23日土曜日
  • 5. デモはここ http://dsauth-sample.eg2mix.com/ 13年3月23日土曜日
  • 6. バックナンバー FuelPHP 勉強会 東京 vol.2でOAuthログインの発表をしてきた https://speakerdeck.com/egmc/fuel-oauth FuelPHP用ソーシャルログイン専用認証パッケージDsAuthでNinjAuth をもっと簡単に利用する http://dasalog.eg2mix.com/fuel-advent2012-dsauth/ 13年3月23日土曜日
  • 7. オプションの補足1 ユーザー名の取り扱い ユーザー名は被る可能性がある 13年3月23日土曜日
  • 8. always_confirm_username 新規登録時に必ずユーザー名の入力を強制 オフると基本的にOAuthで認証したユーザー名 を使います 13年3月23日土曜日
  • 9. allow_duplicated_username 重複ユーザー名を許容 always_confirm_usernameがオフで allow_duplicated_usernameがオンになってると 重複した時だけ入力ページを表示 13年3月23日土曜日
  • 10. オプションの補足2 facebookイメージURLの変更 13年3月23日土曜日
  • 11. auto_modify_userinfo 今のところやっているのはfacebookのユーザー イメージURLを書き換えるだけ if (Config::get('dsauth.auto_modify_userinfo')) { // this will be removed if facebook image url has no token if (strpos($user_to_resgister['image'], 'https://graph.facebook.com/me/picture') !== false) { $user_to_resgister['image'] = "https://graph.facebook.com/{$user_to_resgister['uid']}/ picture?type=normal"; } } 13年3月23日土曜日
  • 12. なんで? fuel-oauth2が渡してくるfacebookのユーザーイ メージURLにOAuthトークンがくっついてくる から 13年3月23日土曜日
  • 13. ここですね https://github.com/fuel-packages/fuel-oauth2/blob/ master/classes/provider/facebook.php ! public function get_user_info(Token_Access $token) ! { ! ! $url = 'https://graph.facebook.com/me?'.http_build_query(array( ! ! ! 'access_token' => $token->access_token, ! ! )); ! ! $user = json_decode(file_get_contents($url)); ! ! // Create a response from the request ! ! return array( ! ! ! 'uid' => $user->id, ! ! ! 'name' => $user->name, ! ! ! 'nickname' => isset($user->username) ? $user->username : null, ! ! ! 'email' => isset($user->email) ? $user->email : null, ! ! ! 'image' => 'https://graph.facebook.com/me/picture? type=normal&access_token='.$token->access_token, ! ! ! 'urls' => array( ! ! ! 'Facebook' => $user->link, ! ! ! ), ! ! ); ! } 13年3月23日土曜日
  • 14. その他 fuel-oauth2はallow_url_fopenがオンになってな いと動かないよ 13年3月23日土曜日
  • 15. なんで? httpリクエストにfile_get_contentsを使ってるか ら 13年3月23日土曜日
  • 16. とのことです https://github.com/fuel-packages/fuel-oauth2/ commit/ f733cd8de957918edef2e0aed8d086902dc1f4fe 13年3月23日土曜日
  • 18. その他2 fuel-ninjauthのレポジトリが移動してました https://github.com/philsturgeon/fuel-ninjauth 13年3月23日土曜日
  • 19. その他3 Fuel1.5系でDsAuthを動かそうとしたのですが マイグレーションで絶賛こけております (パッケージが見つけられてない) 13年3月23日土曜日
  • 20. なんで? 調査中です 13年3月23日土曜日