在Facebook IOS SDK中禁用单点login(SSO)

我们已经构build了一个使用Facebook SDK的iOS应用程序。 不幸的是,我们的客户要求我们禁用应用程序中的背景,这意味着Facebook单点login(SSO)scheme不适用于我们(因为我们的应用程序现在从login/授权在Facebook应用程序)。

所以问题是:我们是否可以在Facebook iOS SDK中禁用SSO,使其行为与旧版SDK中的Facebooklogin/授权在应用内networking视图中一样?

在FBconnect库中打开Facebook.m文件并find:

- (void)authorize:(NSArray *)permissions delegate:(id<FBSessionDelegate>)delegate { 

组:

  [self authorizeWithFBAppAuth:NO safariAuth:NO]; 

和FBconnect将只授权与内popup…

我不知道你可以禁用SSO或不,但我有一个技巧来做到这一点(每次需要在Facebook上login证书)。

idFinishLaunchingWithOptions方法中写入这些行

 NSHTTPCookieStorage* cookies = [NSHTTPCookieStorage sharedHTTPCookieStorage]; for (NSHTTPCookie* cookie in [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies]) { NSString *domainStr=(NSString *)[cookie domain]; NSLog(@"%@",domainStr); if([domainStr isEqualToString:@".facebook.com" ]) { [cookies deleteCookie:cookie]; } 

[self authorizeWithFBAppAuth:NO safariAuth:NO];

在调用Facebookauthentication过程之前,您可以保存您的应用程序的状态。 但如果FB应用程序在您的用户的电话上,

 [facebook authorize:permissions delegate:self] 

将把你redirect到它。

但是如果你只有基本的需求,你可以使用FB SDK的webview部分。 使用:

 [facebook authorize:permissions delegate:self] 

将使FB SDK显示一个webview,它将负责授权过程。