1

我正在使用 Facebook 的 SDK 创建登录功能。我正在重新使用以前项目中的代码,该项目有一个登录按钮,该按钮重定向到 Facebook 域上的登录框(即登录框不是弹出窗口,而是重定向了用户)。

在之前的项目中,当用户在接受应用程序后返回站点时,有一个 PHP 脚本创建了一个$_Session

$user = $facebook->getUser();
if (isset($user)){
    $_SESSION['LoggedIn'] = $user;
}

然后,我可以使用“LoggedIn”会话来检查用户是否已登录,并据此修改页面(例如,替换页面上的内容)。

这是我的问题 - 我现在正在使用 Facebook 为弹出登录框提供的 JS 代码。我猜在用户从登录弹出窗口接受应用程序后,我需要从 JavaScript 中启动会话吗?问题是我无法弄清楚如何......

 $(".facebookButton").click(function(){          
     FB.login(function(response) {
        if (response.authResponse) {
           //User accepted the app -I need to start the SESSION here?
         } else {
           //User hasn't accepted the app.
         }
      });
  });

基本上我想要实现的是让网站知道用户是否登录,即使他们刷新了页面。谢谢您的帮助!

4

1 回答 1

0

当用户使用 JavaScript SDK 登录时,会立即在您的网站上放置一个带有其身份验证详细信息的 cookie。丢弃的 cookie 也可以由 PHP SDK 准备好,因此您真正需要做的就是刷新页面以供 PHP SDK 检测用户:

$(".facebookButton").click(function(){          
   FB.login(function(response) {
      if (response.authResponse) {
         // reload page
         location.reload();
       } else {
         // User hasn't accepted the app.
       }
    });
});
于 2014-01-14T14:23:59.490 回答