簡體   English   中英

hybridauth : 如何在 yii 框架中驗證 twitter 用戶

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM