【问题标题】:CakePHP and OpauthCakePHP 和 Opauth
【发布时间】:2013-02-04 03:28:42
【问题描述】:

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

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

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

【问题讨论】:

  • 是的,这正是你所做的。前进! :)

标签: cakephp cakephp-2.0 cakephp-2.1


【解决方案1】:

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

插件页面有你的答案,差不多

  • 转到https://github.com/uzyn/cakephp-opauth#how-to-use

  • 检查步骤#6验证后,用户将被重定向到Router::url('/opauth-complete'),可在$this->data获取验证的身份验证响应数据

  • 完成后,你就有了类似他们的例子public function opauth_complete() {...

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

  • 我有时使用的一种方法是通过 Opauth 提供的 2 条信息来查找用户示例:用户名和电子邮件

  • 你可以使用$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!

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

【讨论】:

  • 谢谢!我做了类似你提到的事情。主要区别在于我将 opauth 结果保存到 user_oauths 表中。这样我就可以处理将 Twitter 连接到帐户(因为 twitter 不发送电子邮件)。我还保存了令牌/秘密,以便我可以使用它来共享内容,而无需再次生成它,直到它过期。
  • 这是一个很好的回应。谢谢罗纳德。
猜你喜欢
  • 2014-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-10
  • 2011-10-08
  • 2010-12-07
  • 1970-01-01
相关资源
最近更新 更多