从Facebook登出,登录时显示同一页面

时间:2014-05-21 06:31:18

标签: ios iphone facebook ios5

我使用facebook sdk在个人资料上发布照片。当我第一次发布照片时,Safari会打开并向我显示Facebook的登录页面。我输入用户名和密码,然后发布图片。现在,对于按钮我编写了注销功能,如下所示:

[FBSession.activeSession closeAndClearTokenInformation];

同样,我使用不同的用户名和密码发布照片,但Facebook登录页面无法打开。它说像你这样的最后一页你已经注册了这个应用程序。

2 个答案:

答案 0 :(得分:0)

查看我的回答here。基本上这样做

[FBSession.activeSession closeAndClearTokenInformation];

将关闭内存中会话(在您的应用内)。如果登录是通过Safari进行的,那么在Safari中会话仍处于打开状态,我担心你与此无关。

编辑1:我注意到您是上述问题的作者。这两个问题背后的实际主题是相同的:Facebook会话开放的地方。如果您的应用程序转发到Safari应用程序并且打开了一个网络会话8,无论是什么,在facebook.com,google.com或其他任何方式),您与此无关,它是Safari的责任)。

这样想:假设您有一个按钮可以在Safari中打开任何网站(使用openURL:方法)。如果您然后导航到facebook.com并登录,然后您回到Facebook,则无法告诉Safari从您的应用程序中退出facebook.com。您的代码中发生的事情基本相同。

答案 1 :(得分:0)

为此,您需要根据FB sdk删除cookie

FBSession* session = [FBSession activeSession];
[session closeAndClearTokenInformation];
[session close];
[FBSession setActiveSession:nil];

NSHTTPCookieStorage* cookies = [NSHTTPCookieStorage sharedHTTPCookieStorage];
NSArray* facebookCookies = [cookies cookiesForURL:
                           [NSURL URLWithString:@"https://facebook.com/"]];

for (NSHTTPCookie* cookie in facebookCookies) {
    [cookies deleteCookie:cookie];
}

如果您使用任何单件存储图像,请在注销时清除这些图像