Facebook graph api 在Cakephp 3x中验证Facebook用户

Facebook graph api 在Cakephp 3x中验证Facebook用户,facebook-graph-api,cakephp,authentication,cakephp-3.0,Facebook Graph Api,Cakephp,Authentication,Cakephp 3.0,我在CakePHP3(测试版)中使用PHPSDK-4登录Facebook,效果很好。现在,我需要根据FB登录获取用户数据并对用户进行身份验证。我正在尝试使用Cake的Auth组件。最初,在尝试对用户进行身份验证时 $this->Auth->setUser($user) 获取错误:会话已启动,因为我们需要会话启动()才能登录Facebook。1-尝试了,会话[Session写入关闭()]等。但仍然不起作用。我可以尝试一下在站点中使用Facebook登录验证用户的最佳方法吗?CakePHPs会话是延

我在CakePHP3(测试版)中使用PHPSDK-4登录Facebook,效果很好。
现在,我需要根据FB登录获取用户数据并对用户进行身份验证。我正在尝试使用Cake的Auth组件。最初,在尝试对用户进行身份验证时

$this->Auth->setUser($user)


获取错误:会话已启动,因为我们需要会话启动()才能登录Facebook。
1-尝试了,会话[Session写入关闭()]等。但仍然不起作用。
我可以尝试一下在站点中使用Facebook登录验证用户的最佳方法吗?

CakePHPs会话是延迟启动的,即,一旦您尝试以某种方式访问会话,它们就会启动,如果会话是事先手动启动的,您将收到该错误,请参阅

您可以通过CakePHP手动启动会话来轻松解决此问题。会话对象是,例如,在使用SDK之前,您可以在控制器中执行以下操作

$this->request->session()->start();
然后Facebook的SDK应该能够接收到它

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


我建议大家看看,还有一个可以无缝集成到CakePHPs身份验证机制中的方法,这可能会为您提供一些定制实现的想法,以防您需要使用HybridAuth提供的v4 SDK。

Cakes身份验证系统已经启动了一个会话,这也是错误告诉您的非常清楚的内容。您需要弄清楚FB auth是如何工作的,并为Cake3编写一个auth适配器。@burzum我认为是另一种方式,手动
session\u start()
启动了会话,如果是CakePHP启动了会话,那么
session::start()
将不会到达抛出此错误消息的点。@ndm,这取决于他在哪里调用session_start(),但现在我又读了一遍,我认为你是对的。谢谢你的建议。我将研究上面提到的处理程序。这解决了我在将Facebook SDK添加到CakePHP3时遇到的一些问题。CakePHP3插件不下载你能为我提供社交登录插件吗??
$this->request->session()->start();