Facebook 注销工作正常,但未完全注销

Posted

技术标签:

【中文标题】Facebook 注销工作正常,但未完全注销【英文标题】:Facebook logout is working but not completely logout 【发布时间】:2014-03-29 19:49:37 【问题描述】:

我看到了很多问题/答案,但没有任何解决方案有效。

我的问题是,当我们从 facebook 注销并尝试登录时,它不会询问用户名和密码,只是使用以前的用户帐户登录。有什么办法可以彻底退出。我也尝试了以下代码,但没有成功。

    NSHTTPCookie *cookie;
    NSHTTPCookieStorage *storage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
    for (cookie in [storage cookies])
    
        NSString* domainName = [cookie domain];
        NSRange domainRange = [domainName rangeOfString:@"facebook"];
        if(domainRange.length > 0)
        
            [storage deleteCookie:cookie];
        
    

我也试过了:

-[FBSession closeAndClearTokenInformation]

但结果相同。请帮帮我!

【问题讨论】:

你检查了吗(domainRange.length > 0)?你的情况是这样吗?我还建议使用 [[NSURLCache sharedURLCache] removeAllCachedResponses]; 清理 NSURLCache 谢谢。我已经检查过了,它也不起作用。 *** 没有解决方案? 【参考方案1】:

在您的注销方法中尝试此代码:

[FBSession.activeSession closeAndClearTokenInformation];
[FBSession.activeSession close];

【讨论】:

试试这个链接:***.com/questions/6226950/…【参考方案2】:

发生这种情况的原因不是因为用户的会话或令牌保存在应用程序中,而是因为用户允许的权限已保存在他们的 Facebook 帐户中。应用程序权限的存储发生在用户第一次成功使用 facebook 登录应用程序时。 Facebook 这样做是为了让用户不必重复授予之前使用过的应用程序之前授予的权限。要从您的 facebook 帐户中清除此信息,并让应用程序再次请求其必要的权限,您必须登录用户的 facebook 并导航到设置-->应用程序(您使用的应用程序)-->您的应用程序标题。进入 YourAppTitle 后,将其从您保存的应用程序中删除。现在尝试在您的应用程序中使用 facebook 登录,该应用程序应该请求其必要的权限。

【讨论】:

因此,从技术上讲,不可能完全退出 Facebook。如果有人想更改他们的 FB 帐户,那么他需要执行上述所有步骤。 实际上,当您触摸注销按钮时,您实际上是在注销。似乎您在重新登录后并未完全注销,因为该应用程序需要您重新登录的权限已保存到您的 Facebook 帐户。 Facebook 这样做是为了让应用程序的返回用户(以前使用 facebook 登录的用户)可以使用 facebook 按钮快速登录。 这样想,在桌面网络浏览器中,您是否注意到有时您的用户名和密码会在您访问之前登录过的网站时被保存?保存此数据后,您只需单击登录按钮即可快速登录。 facebook 存储返回用户通过 facebook 快速登录到所述应用程序所需的凭据(应用程序的权限)的方式基本上是另一个版本。 我的回答对您有帮助吗?

以上是关于Facebook 注销工作正常,但未完全注销的主要内容,如果未能解决你的问题,请参考以下文章

facebook 注销 API - 为啥下一步?

Facebook登录按钮不刷新自动注销

Facebook 的 Sharekit(Graph API 版本)注销方法未完全注销或取消授权用户

Facebook注销按钮并在注销后重定向

如何注销 Facebook - 在 Rails 应用程序中使用代码(Ruby on Rails Omniauth)

使用社交框架从 Facebook 注销