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

时间:2011-06-22 06:02:51

标签: ios single-sign-on facebook-ios-sdk

我们已经构建了一个使用Facebook SDK的iOS应用程序。不幸的是,我们的客户要求我们在应用程序中禁用后台处理,这意味着Facebook单点登录(SSO)方案对我们不起作用(因为我们的应用程序现在在登录/授权后启动时从头开始在Facebook应用程序中。)

所以问题是:我们可以在Facebook iOS SDK中禁用SSO,使其行为与旧的SDK版本中的行为类似,其中Facebook登录/授权在应用内网络视图中发生吗?

4 个答案:

答案 0 :(得分:6)

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

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

组:

   [self authorizeWithFBAppAuth:NO safariAuth:NO];

FBconnect只会在内部弹出窗口中进行授权......

答案 1 :(得分:2)

我不知道你是否可以禁用sso但是我有一个技巧可以做到这一点。(每次都需要凭证登录facebook)。

在appDelegate的d 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];
}

答案 2 :(得分:1)

[self authorizeWithFBAppAuth:NO safariAuth:NO];

答案 3 :(得分:-1)

您可以在调用facebook身份验证流程之前保存应用的状态。 但如果FB应用程序在您的用户的手机上,

[facebook authorize:permissions delegate:self]

会将您重定向到它。

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

[facebook authorize:permissions delegate:self]

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