首先:我知道有很多关于同一主题的问题,但没有一个对我有用(我已经花了 3 天的时间试图让这个工作)......
我正在开发一款 Javascript 手机游戏,其中包含一些 FB 功能(通过 Javascript Facebook API)。我在尝试真正从 Facebook 注销以与其他用户登录时遇到问题:每次我注销时,我都希望调用登录功能并提示 FB 登录对话框,我可以在其中指定我的电子邮件和密码,但不是这样,Facebook会自动与最后一个用户登录,甚至不需要我做任何事情......我使用 CocoonJS 作为移动平台和纯 Javascript(没有 jQuery):
登录功能:
CocoonJS.Social.Facebook.init({
appId:<<MYAPPID>>,
channelUrl: "channel.html"
});
var socialService = CocoonJS.Social.Facebook.getSocialInterface();
socialService.login(function(loggedIn, error) {
if (error) {
console.error("login error: " + error.message);
}else if (loggedIn) {
console.log("login suceeded");
// Ask for extended permissions
CocoonJS.Social.Facebook.requestAdditionalPermissions("publish", "publish_actions",
function(response)
{
callback(response.error ? false : true);
}
);
CocoonJS.Social.Facebook.getLoginStatus(function(response) {
if (response.status === 'connected')
{
CocoonJS.Social.Facebook.api(
"/me",
function (response) {
if (response && !response.error) {
// Getting "me" returns the information of the "same" user!
console.log("User: "+response.first_name+" "+response.last_name);
}
}
);
}
});
}
});
登出功能:
CocoonJS.Social.Facebook.getLoginStatus(function(response) {
if (response.status === 'connected')
{
CocoonJS.Social.Facebook.logout(function(response) {
console.log("User logged out!");
});
}
});
控制台日志被抛出,所以看起来用户实际上已经退出了,但是当我重新启动游戏时,出现一种“我正在做某事”的屏幕不到一秒钟,并且登录了同一个退出的用户再次登录(甚至通过调用“我”来抛出他们的个人信息)......我期待 Facebook 询问我想用哪个用户登录我的应用程序,但它没有......
我认为它与“会话”或“cookies”有关,但我不知道如何通过 Javascript 清除它们(而且,因为我使用 CocoonJS 作为“浏览器”,所以我几乎无法控制它) ... 任何想法?
提前感谢您的时间和精力!:)