gpt4 book ai didi

iOS Facebook SDK - 强制用户输入凭据

转载 作者:行者123 更新时间:2023-11-29 13:20:19 25 4
gpt4 key购买 nike

开发一个 iOS 应用程序,其中有一个中心用户和许多 guest 用户。我希望 guest 用户能够在应用程序上登录他们的 Facebook 帐户,而无需注销中央用户。我已经尝试使用 FBSessionLoginBehaviorForcingWebView 设置一个新的 FBSession 并设置我自己的 token 缓存策略( token 实际上根本没有缓存),但它仍然使用默认应用程序用户的凭据并且不显示登录网站查看窗口。

根据 FB iOS sdk 文档,将行为设置为 FBSessionLoginBehaviorForcingWebView 应该会强制 Web View 显示用户必须输入其凭据的位置,但在我的应用程序中,它只是自动授权当前登录的中央用户。

我从 FB 提供的 Switch Users 示例中复制了大部分代码,只是我去掉了“插槽”,因为它对 guest 用户的数量设置了上限。这是问题的一部分吗?

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

最佳答案

找到解决方案。基本上,调用以下内容:

[FBSession.activeSession closeAndClearTokenInformation];
[FBSession.activeSession close];
[FBSession setActiveSession:nil];

只清除本地 FB session 信息,不清除 Safari cookies。因此,在我登录用户后,我清除了 Safari cookie:

NSHTTPCookie *cookie;
NSHTTPCookieStorage *storage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
for (cookie in [storage cookies]) {
[storage deleteCookie:cookie];
}
[[NSUserDefaults standardUserDefaults] synchronize];

它不是很优雅,但它确实有效。现在,当下一个用户尝试登录时,它会强制他们输入他们的凭据。

关于iOS Facebook SDK - 强制用户输入凭据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14525841/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com