2016-11-29 134 views
1

大家好,我无法使用最新的sdk注销FB,即使注销后它也显示“已经授权”。这是我注销的代码。FB最新sdk ios注销问题

login = [[FBSDKLoginManager alloc] init]; 
login.loginBehavior = FBSDKLoginBehaviorBrowser; 

if ([FBSDKAccessToken currentAccessToken]) { 

    [login logOut]; 
    [FBSDKAccessToken setCurrentAccessToken:nil]; 
    [FBSDKProfile setCurrentProfile:nil]; 
    NSLog(@"Logged out of facebook"); 
    NSHTTPCookieStorage* cookies = [NSHTTPCookieStorage sharedHTTPCookieStorage]; 
    NSArray* facebookCookies = [cookies cookiesForURL: 
           [NSURL URLWithString:@"http:www.facebook.com"]]; 
    for (NSHTTPCookie* cookie in facebookCookies) { 
     [cookies deleteCookie:cookie]; 
    } 
} 

请帮忙。

+0

您需要删除permision也 –

+0

u能,通过关闭tocken本届 FBSession的信息添加一些代码,删除权限 – Peter

+0

尝试*会话= [FBSession activeSession] [session closeAndClearTokenInformation]; –

回答

0

这是因为您可能是通过Safari登录的。现在,当您尝试从应用程序登录时,它实际注销,但在Safari中会话仍然存在。

+0

是的,但我写了删除cookies的代码。 – Peter

+0

我不认为它的'http'。它应该是'https'。此外,如果数组数返回0,你检查了'facebookCookies'数组吗? – Poles

+0

感谢您的评论。我已经用https替换http仍然得到同样的问题,即使facebookCookies数组数为0,什么是适当的解决方案,请帮助。 – Peter

0

我认为登录/注销(基于访问令牌)并授权您的iOS应用程序使用您的FB账户是两回事。而这个链接确认,请https://stackoverflow.com/a/33780346/3719248

编辑:

你要做到这一点,当你运行该[login logOut];您的用户也被从Safari浏览器注销。如果这是正确的,我认为这不可能实现。 FBSDK使用SFSafariViewController,请检查此link

作为开发人员,您无权访问SFSafariViewController的Cookie,原因是reasons

目前为UIWebViewWKWebView获得的cookies如果实施和使用。我认为这是不是你的情况下

+0

那么解决方案是什么? – Peter

+0

@Peter请检查已编辑的答案 – ibnetariq

+0

如何清除Cookie SFSafariViewController – Peter