在Cakephp 3x中验证Facebook用户

时间:2014-12-23 11:02:57

标签: facebook-graph-api cakephp authentication cakephp-3.0

我已经在CakePHP 3(测试版)中使用PHP SDK-4进行Facebook登录,工作正常。
现在,我需要根据FB登录获取用户数据并对用户进行身份验证。我正在尝试使用Cake的Auth组件。最初,在尝试Auth用户时,

  

$这 - > Auth-> SETUSER($用户)

得到

Error: Session was already started
,因为我们需要用于Facebook登录的session_start()。
1-尝试使用enter link description here和会话[session_write_close()]等。但它确实如此不能正常工作。
我可以通过Facebook登录网站来验证用户的最佳方式吗?

1 个答案:

答案 0 :(得分:3)

CakePHP会话是懒惰启动的,也就是说,一旦您尝试以某种方式访问​​会话,它们就会启动,如果事先手动启动会话,您将收到该错误,请参阅{{3} }。

您可以通过CakePHP手动启动会话,轻松解决此问题。会话对象为Session::start(),因此在使用SDK之前,您可以在控制器中执行类似

的操作
$this->request->session()->start();

然后Facebook SDK应该可以拿起它。

正如burzum在评论中已经提到的那样,身份验证应该更好地包含在身份验证处理程序中。

我建议看看available in the current request,还有一个HybridAuth可以无缝集成到CakePHP身份验证机制中,这可能会为您提供一些自定义实现的想法,以防您需要使用v4 SDK,由HybridAuth CakePHP plugin