我开始实现Opauth for CakePHP 。太棒了,可以轻松地通过 Facebook、Twitter 登录...
问题是,一旦 Opauth 返回登录数据,用户登录 CakePHP 的有效方法是什么?
Opauth 不会将用户登录到 CakePHP。我想我应该创建一个用户并将 facebook 或其他身份验证信息保存到数据库中。有没有一个插件可以让我轻松地做到这一点?
最佳答案
我喜欢 CakePHP 2.0 的一件事是身份验证插件的工作方式,您可以真正自定义一种或多种身份验证方法。同时,这使得开发人员可以“ Hook ”自定义身份验证插件来集成解决方案。
插件页面几乎有你的答案
检查步骤
#6
“验证后,用户将被重定向到Router::url('/opauth-complete')
,并可在$this->data
处检索经过验证的身份验证响应数据”完成后,您将获得类似于示例的代码
public function opauth_complete() {...
在此函数中,您将使用
$this->data
查找已通过身份验证的用户我有时使用的方法是通过 Opauth 提供的两条信息来查找用户示例:用户名和电子邮件
您可以使用类似
$loginUser = $this->User->find('first', array('fields'=>array('User.*'), 'conditions'=>array('User.username'=>$this->data['username'], 'User.email'=>$this->data['email']));
的内容一旦您拥有
$loginUser
中的用户您只需调用$this->Auth->login($loginUser)
即可现在您将与该用户建立 AuthSession!
如果您有任何疑问,请告诉我。
关于CakePHP 和 Oauth,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14616486/