[英]Yii - Hybridauth - How to import contact list of facebook user
[英]hybridauth : how to authenticate twitter user in yii framework
我正在學習http://www.yiiframework.com/wiki/459/integrating-hybridauth-directly-into-yii-without-an-extension/的教程
我包括推特登錄,
問題是推特沒有返回電子郵件地址
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 [displayName] => myhjghj [描述] => 這里有一些文字 - https://tisthedomainname.co/0yuxRheYVD [firstName] => myhjghj [lastName] => [gender] => [language] => [age] => [birthDay] => [birthMonth] => [birthYear] => [email] => [emailVerified] => [phone] => [address] => [country] => [地區] => 英國 [城市] => [zip] => )
在這個網址https://dev.twitter.com/rest/reference/get/account/verify_credentials (並告訴我如何使用這個網址以及何時使用)它提到
“如果用戶的帳戶中沒有電子郵件地址,或者電子郵件地址未經驗證,則將返回 null。”
對於 facebook 和 google 我使用電子郵件地址登錄
public function login()
{
$this->username = $this->userProfile->email; //CUserIdentity
Yii::app()->user->login($this, 0);
}
那么如果用戶在 Twitter 中沒有電子郵件 ID,我該如何登錄用戶?
您可以查看現有身份驗證機制的源代碼,並從那里采取方法。
例如: https : //github.com/SleepWalker/hoauth 。 以下是他如何解釋他的方法:
當你計划使用像 Twitter 這樣的社交網絡,它不會從用戶個人資料中返回電子郵件,你應該在 User 模型中聲明 verifyPassword($password) 或 validatePassword($password) 方法,這應該采用密碼(不是哈希)並返回 true 如果這是有效的。
您還可以聲明 sendActivationMail() 方法,該方法應將用戶帳戶標記為非活動並發送郵件進行激活。 這種方法,當它存在時,將用於像 Twitter 這樣的社交網絡,它不會向我們提供有關用戶電子郵件的數據(因為我們需要證明用戶輸入了正確的電子郵件)。
看一看並根據需要實施。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.