hybridauth:如何在yii框架

时间:2016-09-21 06:10:39

标签: php twitter yii

我正在关注http://www.yiiframework.com/wiki/459/integrating-hybridauth-directly-into-yii-without-an-extension/

的教程

我包含了twitter登录,

问题是Twitter没有返回电子邮件地址

  

Hybrid_User_Profile对象([identifier] => 2378654169 [webSiteURL]   => https://tisthedomainname.co/tpAnZH2BGe [profileURL] => http://twitter.com/myhjghj [photoURL] =>   http://pbs.twimg.com/profile_images/639065265478965088/8zty_o1K.png   [displayName] => myhjghj [描述] =>一些文字在这里 -   https://tisthedomainname.co/0yuxRheYVD [firstName] => myhjghj [lastName] => [性别]   => [语言] => [age] => [birthDay] => [birthMonth] => [birthYear] => [email] => [emailVerified] => [phone] => [地址] => [country] =>   [region] =>英国[city] => [zip] => )

并在此网址https://dev.twitter.com/rest/reference/get/account/verify_credentials中 (还告诉我如何使用此URL以及何时使用) 提到

"如果用户的帐户中没有电子邮件地址,或者电子邮件地址未经验证,则会返回null。"

对于Facebook和谷歌我正在使用电子邮件地址登录

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

那么如果用户在Twitter上没有电子邮件ID,我如何登录用户?

1 个答案:

答案 0 :(得分:1)

您可以查看现有身份验证机制的源代码,并从中获取方法。

例如:https://github.com/SleepWalker/hoauth。以下是他如何解释他的方法:

  

当你计划使用像Twitter这样的社交网络时,它会返回no   来自用户个人资料的电子邮件,您应该声明verifyPassword($ password)   或用户模型中的validatePassword($ password)方法   密码(不是哈希),如果有效则返回true。

     

您还可以声明应标记的sendActivationMail()方法   用户帐户为非活动状态并发送邮件以进行激活。这个   方法,当它存在时将用于社交网络,如   Twitter,没有给我们关于用户电子邮件的数据(因为我们需要   证明用户输入了正确的电子邮件。)

根据需要查看并实施。