首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >调用facebook ios sdk的注销函数未清除用户凭据

调用facebook ios sdk的注销函数未清除用户凭据
EN

Stack Overflow用户
提问于 2011-05-20 14:24:34
回答 2查看 6.9K关注 0票数 4

在实现facebook单点登录时,调用facebook ios sdk的注销函数不会清除用户凭证,也不会要求下次登录。

EN

回答 2

Stack Overflow用户

发布于 2011-05-20 14:39:50

我用的是Graph Api.....

代码语言:javascript
运行
复制
- (IBAction)loginButtonPressed:(id)sender {

    NSString *client_id = @"dsfgdgfgfgdfgvdfg";

    //alloc and initalize our FbGraph instance
    self.fbGraph = [[FbGraph alloc] initWithFbClientID:client_id];

    //begin the authentication process.....
    [fbGraph authenticateUserWithCallbackObject:self andSelector:@selector(fbGraphCallback:) 
                         andExtendedPermissions:@"user_photos,user_videos,publish_stream,offline_access,user_checkins,friends_checkins"];
}


- (void)logOutButtonPressed {

    NSLog(@"logout");

    fbGraph.accessToken = nil;
    NSHTTPCookie *cookie;
    NSHTTPCookieStorage *storage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
    for (cookie in [storage cookies])
    {
        NSString* domainName = [cookie domain];
        NSRange domainRange = [domainName rangeOfString:@"facebook"];
        if(domainRange.length > 0)
        {
            [storage deleteCookie:cookie];
        }
    }

    [self loginButtonPressed:nil];
}

这段代码在FINE..TRY上运行

票数 9
EN

Stack Overflow用户

发布于 2011-05-20 14:34:53

我也有过同样的经历,但我认为这不是一个bug,尽管令人困惑。

Facebook在移动safari中放置了一个cookie,它表示一个有效的会话,也可能是一个访问令牌。如果你用Facebook lib注销,它会清除访问令牌和不在移动safari中使用的webview的所有cookie。实际上,你不能通过代码来做到这一点。现在,如果您返回并打开mobile safari,仍有一个有效的会话,您无需输入凭据即可再次登录。

你可以提交一个bug,询问Facebook是否可以使访问令牌服务器端无效。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6068205

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档