2011-06-22 39 views
2

我們構建了一個使用Facebook SDK的iOS應用程序。不幸的是,我們的客戶要求我們禁用應用程序中的背景,這意味着Facebook單點登錄(SSO)方案對我們無效(因爲我們的應用程序現在在登錄/授權後啓動時從頭開始在Facebook應用程序中)。在Facebook IOS SDK中禁用單點登錄(SSO)

所以問題是:我們可以禁用Facebook iOS SDK中的SSO,使其行爲與舊版SDK中的版本相同,Facebook登錄/授權發生在應用內網絡視圖內?

回答

6

打開Facebook.m文件,並找到:

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

集:

[self authorizeWithFBAppAuth:NO safariAuth:NO]; 

而且FBconnect將只授權裏面彈出...

+0

完美地工作 - 謝謝kviksilver – Gehan

+2

我們可以在FacebookSDK 3.1和IOS 6中做同樣的事嗎? –

+0

我也有同樣的問題@ jatt .... 我們可以在Facebook上做同樣的事情嗎?sdk 3.1 – Johnykutty

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

您可以保存應用程序的狀態,這些排隊叫Facebook的認證過程之前。 但如果FB應用是用戶的手機上,該

[facebook authorize:permissions delegate:self] 

將您重定向到它。

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

[facebook authorize:permissions delegate:self] 

將使FB SDK顯示一個webview,它將負責授權過程。

在FBconnect庫
1

[自我authorizeWithFBAppAuth: NO safariAuth:NO];