在有一个中心用户和许多访客用户的 iOS 应用程序上工作。我希望来宾用户能够在应用程序上登录他们的 Facebook 帐户,而无需注销中央用户。我尝试使用 FBSessionLoginBehaviorForcingWebView 设置新的 FBSession 并设置我自己的令牌缓存策略(实际上根本没有缓存令牌),但它仍然使用默认应用程序用户的凭据并且不显示登录网络查看窗口。
根据 FB iOS sdk 文档,将行为设置为 FBSessionLoginBehaviorForcingWebView 应该强制 Web 视图显示用户必须输入其凭据的位置,但在我的应用程序中,它只是自动授权当前登录的中央用户。
我从 FB 提供的 Switch Users 示例中复制了大部分代码,只是我取出了“插槽”,因为它对来宾用户的数量设置了上限。这是问题的一部分吗?
FBSessionLoginBehavior behavior = FBSessionLoginBehaviorForcingWebView;
FacebookCustomerTokenCachingStrategy *tokenCachingStrategy = [[FacebookCustomerTokenCachingStrategy alloc] init];
self.session = [[FBSession alloc] initWithAppID:nil
permissions:nil
urlSchemeSuffix:nil
tokenCacheStrategy:tokenCachingStrategy];
[self.session openWithBehavior:behavior
completionHandler:^(FBSession *session,
FBSessionState status,
NSError *error) {
//do whatever
}];