2014-03-05 42 views
0

我正在使用最新的Facebook SDK,我需要在成功注销后弹出到根视图控制器,但是当我再次登录时,它并不实际从Facebook注销。我需要删除Cookie或需要执行其他操作这里是我的代码如何注销Facebook并删除Cookies

.m

- (void)viewDidLoad 
{ 

    self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] 
              initWithTitle:@"Logout" 
              style:UIBarButtonItemStyleBordered 
              target:self 
              action:@selector(logoutButtonWasPressed:)]; 

    [super viewDidLoad]; 

} 

-(void)logoutButtonWasPressed:(id)sender 
    { 

    [FBSession.activeSession closeAndClearTokenInformation]; 

    [self.navigationController popViewControllerAnimated:YES]; 

    } 

回答

0

如果你想从UIWebView删除的cookie,你可以尝试这样的:

NSHTTPCookieStorage* cookies = [NSHTTPCookieStorage sharedHTTPCookieStorage]; 
     NSArray* facebookCookies = [cookies cookiesForURL: 
            [NSURL URLWithString:@"http://login.facebook.com"]]; 
     for (NSHTTPCookie* cookie in facebookCookies) { 
      [cookies deleteCookie:cookie]; 
     } 

该Cookie通过清除NSUserDefault数据保存在NSUserDefaults你也可以清晰的cookie。

编辑:

如果你想从应用程序清除Safari浏览器的cookie的那么这里就是答案:

“移动Safari浏览器的cookie不是从SDK应用程序访问,每个SDK应用程序中给出。它自己的WebKit缓存和cookie存储,所以虽然cookie会保留在同一个应用程序中,但它们不能在应用程序之间访问“。

+0

我尝试但没有任何运气。 –

+0

看我的编辑.. :) – Rashad

+0

@ user3382857 >>你解决了这个问题吗? – Rashad

0

我觉得你是想是雨后春笋般冒出来,并请求允许做的东西等的Facebook初始流...

这不是实现通过注销。

您只能通过登录到FaceBook并进入应用程序设置并从中删除权限来执行此操作。

+0

是正在使用Facebook的弹出,并请求许可,您可以请解释更多>您只能通过登录到Facebook和进入应用程序设置做到这一点,从那里删除权限。 –

+0

注销应用程序并仅删除cookie只会从手机中执行此操作。 Facebook仍然在其服务器上存储权限。 – Fogmeister

0

您的代码是正确的。您使用closeAndClearTokenInformation方法注销。如果用户使用Safari登录Facebook,它确实可以保持会话缓存。您可以尝试在你的注销方法取出饼干:

-(void)logoutButtonWasPressed:(id)sender 
{ 
    [FBSession.activeSession closeAndClearTokenInformation]; 

    // Clear the cookies. 
    for (NSHTTPCookie *cookie in [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies]) 
    { 
     [storage deleteCookie:cookie]; 
    } 

    [[NSUserDefaults standardUserDefaults] synchronize]; 

    [self.navigationController popViewControllerAnimated:YES]; 
} 
+0

它不工作,我需要显示登录弹出每次用户注销时,但仍然没有任何运气.. –