[英]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.