Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CakePHP和Opauth_Cakephp_Cakephp 2.0_Cakephp 2.1 - Fatal编程技术网

CakePHP和Opauth

CakePHP和Opauth,cakephp,cakephp-2.0,cakephp-2.1,Cakephp,Cakephp 2.0,Cakephp 2.1,我开始实施。通过Facebook、Twitter轻松登录真是太棒了 问题是,一旦Opauth返回登录数据,什么是将用户登录到CakePHP的有效方法 Opauth不会将用户登录到CakePHP。我想我应该创建一个用户并将facebook或其他身份验证信息保存到数据库中。有没有一个插件可以让我轻松地做到这一点?我喜欢CakePHP 2.0的一点是Auth插件的工作方式,您可以定制一个或多个身份验证方法。同时,这让开发人员“钩住”自定义身份验证插件来集成解决方案 插件页面几乎有你的答案 后藤 检查

我开始实施。通过Facebook、Twitter轻松登录真是太棒了

问题是,一旦Opauth返回登录数据,什么是将用户登录到CakePHP的有效方法


Opauth不会将用户登录到CakePHP。我想我应该创建一个用户并将facebook或其他身份验证信息保存到数据库中。有没有一个插件可以让我轻松地做到这一点?

我喜欢CakePHP 2.0的一点是Auth插件的工作方式,您可以定制一个或多个身份验证方法。同时,这让开发人员“钩住”自定义身份验证插件来集成解决方案

插件页面几乎有你的答案

  • 后藤

  • 检查步骤
    #6
    “验证后,用户将被重定向到
    路由器::url('/opauth complete')
    ,可在
    $this->data
    检索验证的验证响应数据。”

  • 完成此操作后,您将获得与示例类似的代码
    public function opauth_complete(){…

  • 在此函数中,您将使用
    $this->data
    查找经过身份验证的用户

  • 我有时使用的一种方法是通过Opauth提供的两条信息找到用户,例如:用户名和电子邮件

  • 您可以使用类似于
    $logiuser=$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了


如果您有任何问题,请告诉我。

是的,这正是您要做的。继续!:)谢谢!我做了与您提到的类似的事情。主要区别是我将opauth结果保存到了一个
用户\u oauths
表中。这样我就可以处理将Twitter连接到帐户的问题(因为Twitter不会发送电子邮件)。我还保存了令牌/密码,这样我就可以使用它来共享内容,而无需在过期之前再次生成。这是一个很好的回复。谢谢Ronald。