我已经在CakePHP 3(测试版)中使用PHP SDK-4进行Facebook登录,工作正常。
现在,我需要根据FB登录获取用户数据并对用户进行身份验证。我正在尝试使用Cake的Auth组件。最初,在尝试Auth用户时,
$这 - > Auth-> SETUSER($用户)
得到
Error: Session was already started,因为我们需要用于Facebook登录的session_start()。
答案 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。