Ios 如何注销facebook并删除Cookie

Ios 如何注销facebook并删除Cookie,ios,Ios,我正在使用最新的facebook SDK,成功注销后我需要弹出到根viewcontroller,但当我再次登录时,它实际上并没有从facebook注销。我需要删除cookie或需要执行其他操作。这是我的代码 在.m - (void)viewDidLoad { self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWit

我正在使用最新的facebook SDK,成功注销后我需要弹出到根viewcontroller,但当我再次登录时,它实际上并没有从facebook注销。我需要删除cookie或需要执行其他操作。这是我的代码

.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];

  }

我想你想要的是Facebook的初始流量突然出现并请求许可做一些事情等等

这不是通过注销来实现的


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

如果您想从
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保存在
NSUserDefaults
中。您也可以通过清除
NSUserDefault
数据来清除cookie

编辑:

如果您想从应用程序中清除safari的cookie,那么以下是答案:


“Mobile Safari的cookie无法从SDK应用程序访问。每个SDK应用程序都有自己的WebKit缓存和cookie存储,因此,虽然cookie将在同一个应用程序中保留,但在应用程序之间无法访问。”

您的代码是正确的。您可以使用
closeAndClearTokenInformation
方法注销。如果用户使用Safari登录Facebook,它可能确实会缓存会话。您可以尝试在注销方法中删除cookie:

-(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];
}

是的,我正在使用Facebook弹出窗口并请求权限,请您解释更多信息>您只能通过登录Facebook并进入应用程序设置并从中删除权限来完成此操作。注销应用程序并删除Cookie只能从您的手机中完成此操作。Facebook仍然在他们的服务器上存储权限。我尝试了,但没有任何运气。这不起作用,每次用户注销时我都需要显示登录弹出窗口,但仍然没有任何运气。。