facebook iOS sdk的登录注销问题

facebook iOS sdk的登录注销问题,ios,facebook,login,logout,Ios,Facebook,Login,Logout,我们在iOS facebook登录注销问题上得到了sruck。当我使用我的应用程序登录facebook时,它会用“登录”和“取消”按钮提示用户权限。但是这个屏幕只在第一次出现。ie一旦我们使用safari或应用程序登录,即使我们从facebook注销,应用程序屏幕上提示用户权限,也只会显示一个“ok”按钮。它不允许以其他用户身份登录。为什么每次应用程序启动时都不显示带有“登录”和“取消”按钮的屏幕?我尝试删除cookies并删除默认值,但没有成功 问题是注销后,我无法以其他用户身份登录faceb

我们在iOS facebook登录注销问题上得到了sruck。当我使用我的应用程序登录facebook时,它会用“登录”和“取消”按钮提示用户权限。但是这个屏幕只在第一次出现。ie一旦我们使用safari或应用程序登录,即使我们从facebook注销,应用程序屏幕上提示用户权限,也只会显示一个“ok”按钮。它不允许以其他用户身份登录。为什么每次应用程序启动时都不显示带有“登录”和“取消”按钮的屏幕?我尝试删除cookies并删除默认值,但没有成功

问题是注销后,我无法以其他用户身份登录facebook。它仍然显示为同一用户

我正在sdk中调用下面的注销函数

(void)logout:(id<FBSessionDelegate>)delegate {

  self.sessionDelegate = delegate;
 [_accessToken release];
 _accessToken = nil;
 [_expirationDate release];
 _expirationDate = nil;

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

if ([self.sessionDelegate respondsToSelector:@selector(fbDidLogout)]) {
  [_sessionDelegate fbDidLogout];
}
}
后悔 Shihab

我修改了FBDID注销方法,成功了,代码如下:

-(void) fbDidLogout
{
    NSLog(@"Logged out of 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];
        }
    }
}//End of Method
该方法已成功注销用户。
希望这会有帮助

我只是想,我进入了iPhone的设置,进入了隐私。我选择了Facebook标签,并关闭了它,上面说已经请求访问你Facebook帐户的应用程序将出现在这里。它工作

您可以使用以下代码清除会话和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];
}

FBSession openWithBehavior:completionHandler:可以使用

FBSession *fbSession = [[FBSession alloc] initWithPermissions:[NSArray arrayWithObjects:@"email",@"publish_actions",@"publish_stream", nil]];
 [fbSession openWithBehavior:FBSessionLoginBehaviorForcingWebView completionHandler:^(FBSession *session,FBSessionState state, NSError *error){
    [FBSession setActiveSession:fbSession]; // Retain the Active Session.        
}];

用于注销,由Ellen S.提供。。在iOS上运行良好。

当登录时设置为loginBehavior,因此当您退出时,使用其他帐户登录时,不会仅显示授权,而不显示登录屏幕login.loginBehavior=FBSDKLoginBehaviorWeb;我使用Facebook4.11,这是工作

你能写下如何实现你的注销方法以及你使用哪些代理吗?也许我能帮你,我也一直在和facebook打交道。对不起,我不能附上屏幕截图。我面临的问题是,即使在从我的应用程序注销后,我也无法以其他用户的身份登录。我希望,在注销后,当我再次尝试登录系统时,应该有一个从facebook用户名密码窗口注销的链接。我在一些iOS Facebook应用程序中也看到了同样的情况。你找到解决方案了吗?我也面临同样的问题。不可能以其他用户的身份登录,因为facebook已全局登录到您的设备,并且您无法从您的应用程序将某人从facebook注销。如果您使用的是iOS,您不需要关闭会话,并且在您已经关闭和清除令牌信息时,将活动会话设置为零。如果您这样做,您必须单击两次才能登录。同意@AtifImran。只有
closeAndClearTokenInformation
可以完成这项工作。您好,我有一些问题,我有相同的问题,我的注销成功,因为我无法获得新用户的登录屏幕
FBSession *fbSession = [[FBSession alloc] initWithPermissions:[NSArray arrayWithObjects:@"email",@"publish_actions",@"publish_stream", nil]];
 [fbSession openWithBehavior:FBSessionLoginBehaviorForcingWebView completionHandler:^(FBSession *session,FBSessionState state, NSError *error){
    [FBSession setActiveSession:fbSession]; // Retain the Active Session.        
}];