繁体   English   中英

调用facebook ios sdk的注销功能不会清除用户凭据

[英]Calling logout function of facebook ios sdk is not clearing user Credentials

在实施facebook SSO时,调用facebook ios sdk的注销功能不会清除用户凭据,也不会要求下次登录。

我使用Graph Api .....

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

这段代码工作很精细

我经历过同样的事情,但我认为这不是一个错误,但令人困惑。

Facebook在移动safari中放置一个cookie,它指的是有效会话或访问令牌。 如果您使用Facebook lib注销,它将清除访问令牌,并且所有未在移动版Safari中使用的webview的cookie。 实际上你不能通过代码来做到这一点。 现在,如果您回来并打开移动safari,仍然有一个有效的会话,您再次登录而不输入凭据。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM