Javascript Facebook SDK:如何真正登出
Javascript Facebook SDK: how to really log out?
首先:我知道有很多关于同一主题的问题,但没有一个对我有用(我已经花了3天时间试图让这个工作)…
我正在制作一款包含一些FB功能(通过Javascript Facebook API)的Javascript手机游戏。我遇到了麻烦,而试图真的从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会问我想用哪个用户登录我的应用,但它没有…
我认为它与"会话"或"cookie"有关,但我不知道如何通过Javascript清除它们(而且,因为我使用CocoonJS作为"浏览器",我对它几乎没有控制)…任何想法?
提前感谢您的时间和精力!:)
CocoonJS使用原生iOS和Android Facebook sdk。SDK本身负责会话存储,CocoonJS中不使用cookie。
Facebook SDK有两种不同的方法来关闭会话:
- close():关闭本地内存会话对象,但不清除持久令牌缓存。
- closeAndClearTokenInformation():关闭内存会话,并清除与会话相关的任何持久缓存
CocoonJS.Social.Facebook。在Android和iOS上内部调用closeAndClearTokenInformation。它擦除所有缓存的令牌,因此下一次登录从头开始。
Facebook SDK使用Facebook应用程序来处理登录过程,如果它安装在设备上,否则它回退到基于webview的登录。问题可能是你正在安装Facebook应用程序的设备上进行测试,所以SDK能够从Facebook应用程序获得登录用户,而不需要再次请求。如果你从Facebook应用程序中退出,或者你在没有Facebook应用程序的设备上测试你的应用程序,Facebook将要求你输入用户名和密码。
- 使用php或javascript从facebook相册URL中删除多余的部分
- 漂亮照片图片库中的Facebook赞按钮
- 包括用于facebook评论框的JavaScript SDK
- 使用Facebook live API创建实时视频对象时的隐私设置
- 有任何可能将facebook实时信使整合到一个网站中
- facebook”;添加评论“;popup获胜'不要消失
- Facebook共享显示一个接一个的空白页面
- 使用acess代币登录Facebook,并通过网络应用程序离线发布
- 如何使用Spring MVC将Facebook返回的响应数据保存在Java类中
- 如何在Facebook上的iframe应用程序中使后退按钮返回到上一页
- 异步facebook功能
- Facebook登录按钮没有'不能在Firefox上工作
- 使用javascript反复检查用户在facebook上的登录状态
- 在我的SPA应用程序中集成Facebook共享的问题
- 点击facebook像素跟踪注册(JS/JQUERY代码)
- Facebook共享动态参数链接
- FB.login访问令牌facebook javascript SDK
- 如何检查用户已经登录facebook
- Facebook登录不适用于iOS的应用内浏览器
- Javascript Facebook SDK:如何真正登出