FB API v5 CSRF问题:修改了令牌会话

时间:2016-02-03 15:15:29

标签: php facebook session facebook-php-sdk

经过很长一段时间寻找解决问题的方法,我没有成功解决它。 所以,我有这个错误:跨站点请求伪造验证失败。来自URL和会话的“状态”参数不匹配。

我知道这是因为Session和URL中的令牌不一样。经过多次测试,我发现sesssion中的令牌($ _SESSION ['FBRLH_state'])在我调用getLoginUrl()的第一个PHP文件和我的第二个PHP文件回调(fb_callback.php)之间被修改。因此,显然,因为令牌已更改,它可能与URL中的相同。 我验证了在我的回调文件中,没有调用getLoginUrl,所以在这个过程中这个函数只被调用一次。 一个架构,以确保你了解我: Login.php:

$facebook = new Facebook\Facebook($config);
$helper = $facebook->getRedirectLoginHelper();
$permissions = ['email', 'user_birthday', 'user_likes'];
$loginUrl = $helper->getLoginUrl('http://www.marche-prive.com/fb_callback.php', $permissions);

此后,FBRLH_state等于值A.

fb_callback.php:

//FBRLH_state equals B
$facebook = new Facebook\Facebook($config);
$helper = $facebook->getRedirectLoginHelper();
$permissions = ['email', 'user_birthday', 'user_likes'];

你知道为什么我的令牌会话在这两个文件之间被修改了吗?

由于

0 个答案:

没有答案