[英]CakePHP Auth Login (Wrong Approach?)
我正在使用CakePHP 2.4.4,facebook_php_sdk并尝试构建我自己的功能,通过facebook / linkedin登录创建用户。
据我所知,facebook不会检索密码,因此我创建了一个带空格的密码,并在保存之前将其哈希。 我这样做的原因是因为“Auth Login”需要用户名(我把它作为电子邮件)和密码(我对提供的CakePHP Auth不太清楚,这可能是错误的方法)。
我现在面临的问题是,如果用户通过“abc@gmail.com”进行手动创建并输入简单的密码,例如。 如果此用户通过使用相同电子邮件“abc@gmail.com”创建的Facebook登录,他/她将无法登录,因为在数据库中已经有此电子邮件。
我很确定那里出了问题,但不知道从哪里开始,任何指南和指点都会非常感激。
这是我通过Facebook登录的方式: -
$user_profile = $facebook->api('/me','GET');
$this->request->data['User']['username'] = $user_profile['email'];
$this->request->data['User']['password'] = ' ';
$this->Auth->login()
用户通过Facebook创建: -
$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);
感谢XuDing的答案,我应该这样做: -
$this->Auth->login($user)
还有一个场景:如果用户想要手动登录该帐户最初是由Facebook登录创建的,该怎么办?
如果用户名(电子邮件)已经存在,您可以使用Facebook ID找到它并使用$ this-> Auth-> login($ user)直接登录。 看看这个插件代码,它包含使用Facebook登录的完整逻辑:
function __syncFacebookUser
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.