0

这可能是一个非常简单的问题,但我似乎无法找到解决方案。

我正在使用 Facebook 登录来验证用户身份。有时这会失败。他们第一次单击“使用 Facebook 登录”按钮时,服务器没有从 Facebook 获取任何数据($user为空)。有趣的是,当用户之后直接再次使用按钮时,一切都很好。然后,直到整个浏览器关闭,您就可以完美退出登录,没有任何问题。

if ($user) { 
  try {
    $user_profile = $facebook->api('/me');
  } catch (FacebookApiException $e) {
    error_log($e);
    $user = null;
  }
}
4

2 回答 2

0

听起来您正在使用 JS 和 PHP SDK 的组合。

如果用户使用 JS SDK 登录,则会发生这种情况,因为服务器端代码在第一次刷新页面之前不会读取设置的 cookie。如果用户成功登录以提供新的用户 ID,您可以进行 ajax 调用,或者强制刷新页面。

于 2013-07-22T20:22:22.973 回答
0

供参考。

我遇到了同样的问题,因为我正在初始化 session_start(); 在包括我的 fbaccess.php 文件之前。

我通过将顺序更改为:

include('./fb/fbaccess.php');
session_start();
于 2013-08-14T16:48:31.860 回答