2
votes

We've built an iOS app that uses the Facebook SDK. Unfortunately, our client has asked that we disable backgrounding in the app and this means that the Facebook single-sign on (SSO) scheme doesn't work for us (as our app now starts from scratch when it is launched after the login/authorisation in the Facebook app).

So the question is: can we disable SSO in the Facebook iOS SDK such that it behaves like it did in older SDK versions with the Facebook login/ authorization happening within an in-app web-view?

4

4 Answers

6
votes

Open Facebook.m file in FBconnect library and find:

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

set:

   [self authorizeWithFBAppAuth:NO safariAuth:NO];

And FBconnect will authorize only with inside popup...

2
votes

I don't know you can disable sso or not but i have a trick to do this.(every time need credential for login on facebook).

write these line in appDelegate's didFinishLaunchingWithOptions method

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];
}
1
votes

[self authorizeWithFBAppAuth:NO safariAuth:NO];

-1
votes

you can save the state of your app before calling the facebook authentification process. but if the FB app is on the phone of your user, the

[facebook authorize:permissions delegate:self]

will redirect you to it.

But if you only have basic needs, you could use the webview part of the FB SDK. Using:

[facebook authorize:permissions delegate:self]

will make FB SDK displays a webview which will take care of the authorization process.