我正在尝试使用 php 构建一个 facebook 用户登录。我能够获取用户信息,但每次登录都会CSRF state token does not match one provided.
在登录成功后在我的服务器上创建一个错误日志。
我在谷歌周围找到了很多创建 facebook 登录的教程。我还为同一问题找到了其他一些帖子。他们似乎不止一次地指责调用 getLoginUrl() ,而我没有这样做。而且由于我使用的是 sdk 附带的示例,我很困惑为什么它是开箱即用的。
<?php
require 'facebook.php';
$facebook = new Facebook(array(
'appId' => 'APP_ID',
'secret' => 'APP_SECRET',
));
$user = $facebook->getUser();
if ($user) {
try {
$user_profile = $facebook->api('/me');
$logoutUrl = $facebook->getLogoutUrl();
echo "<a href=" . $logoutUrl . ">Logout</a><br><br>";
print_r($user_profile);
}
catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
}
else {
$loginUrl = $facebook->getLoginUrl();
echo "<a href=" . $loginUrl . ">Login</a>";
}
?>