这可能是一个非常简单的问题,但我似乎无法找到解决方案。
我正在使用Facebook登录来验证用户身份。有时这会失败。他们第一次点击“使用Facebook登录”按钮,服务器无法从Facebook获取任何数据($user
为空)。有趣的是,当用户在此之后再次使用按钮时,一切都很好。然后,在整个浏览器关闭之前,您可以完全注销并登录,而不会出现任何问题。
if ($user) {
try {
$user_profile = $facebook->api('/me');
} catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
}
答案 0 :(得分:0)
听起来你正在使用JS和PHP SDK的组合。
如果用户使用JS SDK登录,则会发生这种情况,因为服务器端代码在第一次刷新页面之前没有读取设置的cookie。如果用户成功登录以提供新用户ID,您可以进行ajax调用,或者强制刷新页面。
答案 1 :(得分:0)
FYI。
我遇到了同样的问题,因为我正在初始化session_start(); 在包含我的fbaccess.php文件之前。
我通过将订单更改为:
来修复它include('./fb/fbaccess.php');
session_start();