我们已经构建了一个使用Facebook SDK的iOS应用程序。不幸的是,我们的客户要求我们在应用程序中禁用后台处理,这意味着Facebook单点登录(SSO)方案对我们不起作用(因为我们的应用程序现在在登录/授权后启动时从头开始在Facebook应用程序中。)
所以问题是:我们可以在Facebook iOS SDK中禁用SSO,使其行为与旧的SDK版本中的行为类似,其中Facebook登录/授权在应用内网络视图中发生吗?
答案 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,它将负责授权过程。