21
FuelPHP Advent Calender2012 FuelPHP用ソーシャルログイン専用認証パッケージ DsAuthNinjAuthをもっと簡単に利用する の蛇足 Sohei Iwahori(@EGMC) 2013-03-23 FuelPHP勉強会東京 13323日土曜日

Fuelphptokyo201303

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Fuelphptokyo201303

FuelPHP Advent Calender2012

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

の蛇足

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

13年3月23日土曜日

Page 2: Fuelphptokyo201303

who?

@EGMC

http://egmc.me/

しごと

こじん

13年3月23日土曜日

Page 3: Fuelphptokyo201303

DsAuth?

https://github.com/egmc/fuel-dsauth

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

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

MITライセンス

13年3月23日土曜日

Page 4: Fuelphptokyo201303

like this

13年3月23日土曜日

Page 5: Fuelphptokyo201303

デモはここ

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

13年3月23日土曜日

Page 6: Fuelphptokyo201303

バックナンバー

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

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

FuelPHP用ソーシャルログイン専用認証パッケージDsAuthでNinjAuth

をもっと簡単に利用する

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

13年3月23日土曜日

Page 7: Fuelphptokyo201303

オプションの補足1

ユーザー名の取り扱い

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

13年3月23日土曜日

Page 8: Fuelphptokyo201303

always_confirm_username

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

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

13年3月23日土曜日

Page 9: Fuelphptokyo201303

allow_duplicated_username

重複ユーザー名を許容

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

13年3月23日土曜日

Page 10: Fuelphptokyo201303

オプションの補足2

facebookイメージURLの変更

13年3月23日土曜日

Page 11: Fuelphptokyo201303

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日土曜日

Page 12: Fuelphptokyo201303

なんで?

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

13年3月23日土曜日

Page 13: Fuelphptokyo201303

ここですね

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日土曜日

Page 14: Fuelphptokyo201303

その他

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

13年3月23日土曜日

Page 15: Fuelphptokyo201303

なんで?

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

13年3月23日土曜日

Page 17: Fuelphptokyo201303

気をつけましょう

13年3月23日土曜日

Page 18: Fuelphptokyo201303

その他2

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

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

13年3月23日土曜日

Page 19: Fuelphptokyo201303

その他3

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

13年3月23日土曜日

Page 20: Fuelphptokyo201303

なんで?

調査中です

13年3月23日土曜日

Page 21: Fuelphptokyo201303

以上となります

13年3月23日土曜日