相关疑难解决方法(0)

Facebook登录不符合CSRF状态令牌的问题

我做了一些搜索,但没有发现任何与我的问题有关的内容.

我目前正在尝试在我的网站上实现Facebook登录,并且由于htaccess mod重写URL,我遇到登录验证问题?

代码工作得很好,如果我使用它没有mod重写规则,我会登录,如:

domain.com/view_webhosting.php?webhosting=name
Run Code Online (Sandbox Code Playgroud)

但是一旦我转到mod重写URL

domain.com/webhosting-name/
Run Code Online (Sandbox Code Playgroud)

然后它只是不起作用并抛出错误"CSRF状态令牌与提供的不匹配".

在htaccess文件中它看起来像这样

RewriteRule ^webhosting-([a-z_0-9-]+)/$ /view_webhosting.php?webhosting=$1 [L]
Run Code Online (Sandbox Code Playgroud)

任何人都有这样的问题的解决方案?我正在使用Facebook SDK v3.1.1

.htaccess facebook facebook-php-sdk

5
推荐指数
2
解决办法
2万
查看次数

CSRF状态令牌与提供的令牌不匹配

我知道有关"CSRF状态令牌与提供的令牌不匹配"问题的stackoverflow上有大量帖子.但是,我试过并没有解决这个问题.你能看一下我下面的代码吗?请告诉我您的想法以及如何解决问题.我已经更新到最新的PHP SDK版本.

<?
require_once ('src/facebook.php');
require_once ('src/fbconfig.php');

//Facebook Authentication part
$user_id = $facebook->getUser();
$loginUrl = $facebook->getLoginUrl(array(
    'scope' => 'publish_stream')
);

if ($user_id) {
    $_SESSION['user_id'] = $user_id;
    echo "<script>top.location.href = 'https://www.example.com/app-folder/welcome'</script>"; 
    exit;
} 
?>
    .
    .
<body>
<?php echo '<a href="'.$loginUrl.'" target="_top">Please login</a>'; ?>
    .
    .
</body>
Run Code Online (Sandbox Code Playgroud)

php facebook facebook-graph-api

4
推荐指数
1
解决办法
2万
查看次数