我如何通过JavaScript设置PHP会话(Facebook SDK)

时间:2013-07-13 05:08:58

标签: facebook facebook-javascript-sdk facebook-php-sdk facebook-apps facebook-login

我正在使用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.
         }
      });
  });

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

1 个答案:

答案 0 :(得分: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.
       }
    });
});