我正在使用CakePHP 2.4.4,facebook_php_sdk並試圖通過facebook/linkedin登錄創建自己的函數來創建用戶。CakePHP Auth登錄(錯誤的方法?)
據我所知,Facebook沒有檢索密碼,所以我創建了一個空格密碼並在保存之前對它們進行哈希處理。我這樣做的原因是因爲「Auth Login」需要用戶名(我把它作爲電子郵件)和密碼(我對提供的CakePHP Auth不太清楚,這裏可能是這樣做的錯誤方法)。
現在我面臨的問題是,如果用戶通過「[email protected]」手動創建並輸入簡單的密碼,例如。稍後,如果此用戶通過使用同一電子郵件「[email protected]」創建的Facebook登錄,他/她將無法登錄,因爲數據庫中已經有此電子郵件。
我很確定那裏出了點問題,但不知道從哪裏開始,任何指南和指點將不勝感激。
這是我通過Facebook登錄: - 通過Facebook創建
$user_profile = $facebook->api('/me','GET');
$this->request->data['User']['username'] = $user_profile['email'];
$this->request->data['User']['password'] = ' ';
$this->Auth->login()
用戶: -
$data = array(
'name' => $user_profile['name'],
'username' => $user_profile['email'],
'email' => $user_profile['email'],
'password' => ' ',
'create_source' => 1 //Used this to differentiate from fb or linkedin
);
$this->User->save($data);
感謝敘定答案,我應該這樣做: -
$this->Auth->login($user)
還有一種情況: 如果用戶想要手動登錄賬戶最初由Facebook登錄創建,該怎麼辦?
我不熟悉的Facebook或LinkedIn的API,但我認爲,除非有具有做一個理由API區分帳戶最初是由哪個帳戶創建的,因此您不應該區分這些帳戶,並允許用戶從該帳戶登錄該電子郵件地址。 – Kai
謝謝凱,我通過許定的建議做到了這一點,我還有另一個情景,我在帖子底部更新。 –