繁体   English   中英

FB登录PHP-一页-2个登录按钮

[英]FB login PHP - one page - 2 login buttons

我有一页,我需要有两个Facebook登录按钮(使用fb登录php)。

我需要2种情况:第一个按钮=登录->在私人橱柜上重定向第二个按钮=登录->在新文章页面上重定向。

当我尝试对每个链接使用$ helper-> getLoginUrl两次,每个链接具有不同的$ redirectURL时 ,只有最后一种有效,并且首先给出错误:“ Facebook SDK返回错误:跨站点请求伪造验证失败。”状态“参数来自URL和会话不匹配。

$loginURL = $helper->getLoginUrl('site.com/', $fbPermissions);
$loginURL2 = $helper->getLoginUrl('site.com/new.php', $fbPermissions);

怎么解决呢? 也许我可以通过FB登录URL传递一些参数来知道GET请求中按下了哪个按钮?

这是由于getLoginUrl在每次调用的会话中创建了一个新的state值。

您有两种选择:

  • 调用一次getLoginUrl,获取结果,然后使用字符串函数替换redirect_uri参数的值。 (需要记住,要替换的值已经过URL编码。)

  • 深入研究SDK,并调用该过程中使用的较低层方法之一。 getLoginURL调用makeUrl并在其中设置新的状态值,然后调用$this->oAuth2Client->getAuthorizationUrl以最终创建登录URL。 因此,您可以获取state值,即将对getLoginUrl的第一个(也是唯一一个)调用设置到持久数据存储中,然后使用该参数和其余参数调用getAuthorizationUrl来创建不同的登录URL,但仍使用相同的状态值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM