【发布时间】:2014-06-11 09:44:56
【问题描述】:
首先:我知道有很多关于同一主题的问题,但没有一个对我有用(我已经花了 3 天的时间来解决这个问题)...
我正在开发一款包含一些 FB 功能的 Javascript 手机游戏(通过 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!");
});
}
});
控制台日志被抛出,所以看起来用户实际上已经退出了,但是当我重新启动游戏时,出现了不到一秒钟的“我正在做某事”的屏幕,并且与登录的用户相同out 再次登录(甚至通过调用“我”来抛出他们的个人信息)......我期待 Facebook 询问我想用哪个用户登录我的应用程序,但它没有......
我认为它与“会话”或“cookies”有关,但我不知道如何通过 Javascript 清除它们(而且,因为我使用 CocoonJS 作为“浏览器”,所以我几乎无法控制在它上面)......有什么想法吗?
提前感谢您的时间和精力! :)
【问题讨论】:
标签: javascript facebook logging facebook-javascript-sdk cocoonjs