我們構建了一個使用Facebook SDK的iOS應用程序。不幸的是,我們的客戶要求我們禁用應用程序中的背景,這意味着Facebook單點登錄(SSO)方案對我們無效(因爲我們的應用程序現在在登錄/授權後啓動時從頭開始在Facebook應用程序中)。在Facebook IOS SDK中禁用單點登錄(SSO)
所以問題是:我們可以禁用Facebook iOS SDK中的SSO,使其行爲與舊版SDK中的版本相同,Facebook登錄/授權發生在應用內網絡視圖內?
我們構建了一個使用Facebook SDK的iOS應用程序。不幸的是,我們的客戶要求我們禁用應用程序中的背景,這意味着Facebook單點登錄(SSO)方案對我們無效(因爲我們的應用程序現在在登錄/授權後啓動時從頭開始在Facebook應用程序中)。在Facebook IOS SDK中禁用單點登錄(SSO)
所以問題是:我們可以禁用Facebook iOS SDK中的SSO,使其行爲與舊版SDK中的版本相同,Facebook登錄/授權發生在應用內網絡視圖內?
打開Facebook.m文件,並找到:
- (void)authorize:(NSArray *)permissions
delegate:(id<FBSessionDelegate>)delegate {
集:
[self authorizeWithFBAppAuth:NO safariAuth:NO];
而且FBconnect將只授權裏面彈出...
我不知道你可以禁用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];
}
您可以保存應用程序的狀態,這些排隊叫Facebook的認證過程之前。 但如果FB應用是用戶的手機上,該
[facebook authorize:permissions delegate:self]
將您重定向到它。
但是,如果您只有基本需求,則可以使用FB SDK的webview部分。使用:
[facebook authorize:permissions delegate:self]
將使FB SDK顯示一個webview,它將負責授權過程。
在FBconnect庫[自我authorizeWithFBAppAuth: NO safariAuth:NO];
完美地工作 - 謝謝kviksilver – Gehan
我們可以在FacebookSDK 3.1和IOS 6中做同樣的事嗎? –
我也有同樣的問題@ jatt .... 我們可以在Facebook上做同樣的事情嗎?sdk 3.1 – Johnykutty