2016-09-21 8 views
1

私はTwitterのログインが含まれてhttp://www.yiiframework.com/wiki/459/integrating-hybridauth-directly-into-yii-without-an-extension/hybridauth:

からチュートリアル以下の午前のYiiフレームワークでTwitterユーザーを認証するためにどのようにTwitterは、電子メールアドレスに

Hybrid_User_Profileオブジェクトを返すされていない問題です([識別子] => 2378654169 [webSiteURL] =>https://tisthedomainname.co/tpAnZH2BGe [profileURL] =>http://twitter.com/myhjghj [photoURL] => http://pbs.twimg.com/profile_images/639065265478965088/8zty_o1K.png [表示名] => myhjghj [説明] =>一部のテキストがここにありました - https://tisthedomainname.co/0yuxRheYVD [firstName] => myhjghj [lastName] => [gender] => [language] => [age] => [birthDay] => [電話] => [住所] => [国] => [地域] =>英国[都市] => [郵便番号] => [誕生日] => ] =>)

、次のURLで

https://dev.twitter.com/rest/reference/get/account/verify_credentials

「は、ユーザーが電子メールアドレスを持っていない場合と述べられている(ともどのようにこのURLを使用すると、ときに使用する私に言う) 彼らのアカウントで、または電子メールアドレスがunである場合-verified、nullが返されます。 FacebookとGoogleのための

は、私は、ユーザーがさえずりに電子メールIDを持っていない場合、ユーザーにログインするにはどうすればよいので、

public function login() 
{ 
    $this->username = $this->userProfile->email; //CUserIdentity 
    Yii::app()->user->login($this, 0); 
} 

にログインする電子メールアドレスを使用していますか?

答えて

1

既存の認証メカニズムのソースコードを見て、そこからアプローチを取ることができます。例えば、https://github.com/SleepWalker/hoauth。 、

あなたはTwitterのようなソーシャルネットワークを使用することを計画する際、ユーザープロファイルから何 メールを返さないこと、あなたがverifyPassword($パスワード)を宣言する必要があり かでvalidatePassword($パスワード)方法:ここで彼は彼のアプローチを説明する方法ですユーザーモデルでは、パスワード(ハッシュではない)が で、有効な場合はtrueを返します。

sendActivationMail()メソッドを宣言することもできます。このメソッドは、ユーザアカウントを に非アクティブとしてマークし、アクティブ化のためにメールを送信する必要があります。この メソッドが存在する場合は Twitterなどのソーシャルネットワークに使用されます(ユーザーが正しいメールを入力したことを証明するために が必要なため)。

あなたが望むように見て実行してください。

関連する問題