gpt4 book ai didi

ios - Facebook iOS sdk 的登录注销问题

转载 作者:可可西里 更新时间:2023-11-01 03:36:51 24 4
gpt4 key购买 nike

我们遇到了 iOS facebook 登录注销问题。当我使用我的应用程序登录到 Facebook 时,它会提示用户使用“登录”和“取消”按钮获得许可。但此屏幕仅在第一次出现。即,一旦我们使用 safari 或应用程序登录,即使我们从 facebook 注销,应用程序提示用户许可的屏幕也只显示一个“确定”按钮。它不允许以其他用户身份登录。为什么每次启动应用程序时都不会显示带有“登录”和“取消”按钮的屏幕?我尝试删除 cookie 并删除 NSUserDefaults,但没有成功。

问题是注销后,我无法以其他用户身份登录 facebook。它仍然显示为同一用户。

我在sdk中调用了下面的注销函数

(void)logout:(id<FBSessionDelegate>)delegate {

self.sessionDelegate = delegate;
[_accessToken release];
_accessToken = nil;
[_expirationDate release];
_expirationDate = nil;

NSHTTPCookieStorage* cookies = [NSHTTPCookieStorage sharedHTTPCookieStorage];
NSArray* facebookCookies = [cookies cookiesForURL:
[NSURL URLWithString:@"http://login.facebook.com"]];
for (NSHTTPCookie* cookie in facebookCookies) {
[cookies deleteCookie:cookie];
}

if ([self.sessionDelegate respondsToSelector:@selector(fbDidLogout)]) {
[_sessionDelegate fbDidLogout];
}
}

同样在 fbDidLogout 委托(delegate)函数中,我删除了所有 NSUserDefaults 对象

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if ([defaults objectForKey:@"FBAccessTokenKey"]) {
[defaults removeObjectForKey:@"FBAccessTokenKey"];
[defaults removeObjectForKey:@"FBExpirationDateKey"];
[defaults synchronize];
}

问候什叶派

最佳答案

您可以使用以下代码清除 session 以及清除 cookie:

FBSession* session = [FBSession activeSession];
[session closeAndClearTokenInformation];
[session close];
[FBSession setActiveSession:nil];

NSHTTPCookieStorage* cookies = [NSHTTPCookieStorage sharedHTTPCookieStorage];
NSArray* facebookCookies = [cookies cookiesForURL:[NSURL URLWithString:@"https://facebook.com/"]];

for (NSHTTPCookie* cookie in facebookCookies) {
[cookies deleteCookie:cookie];
}

关于ios - Facebook iOS sdk 的登录注销问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9110740/

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