我正在使用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.
}
});
});
基本上我想要实现的是网站知道用户是否登录,即使他们刷新了页面。谢谢你的帮助!
答案 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.
}
});
});