【问题标题】:Facebook logout is working but not completely logoutFacebook 注销工作正常,但未完全注销
【发布时间】: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
  • 谢谢。我已经检查过了,它也不起作用。 stackoverflow 没有解决方案?

标签: ios iphone objective-c facebook social-networking


【解决方案1】:

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

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

【讨论】:

【解决方案2】:

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

【讨论】:

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