忘记以前登录的facebook用户?

时间:2014-12-01 10:28:13

标签: ios facebook swift facebook-ios-sdk

当我提示用户使用他们的Facebook帐户登录时,我这样做:

FBSession.openActiveSessionWithReadPermissions(["email"], allowLoginUI: true) { (session, state, error) -> Void in
        if error == nil && state == .Open {
            FBRequest.requestForMe().startWithCompletionHandler({ (connection, data_, error) in
                println("Facebook data: ")
                if error == nil {
                    let facebookInfo = data_ as NSDictionary

                }
            })
        }
        else {
            self.SuperVC!.presentAlertView("Error", message: "Could not connect with facebook.", decline: "Ok", others: [])
        }

现在,当它第一次登录用户时可以输入他们的电子邮件和密码......但是下次无法这样做时,即使我清除了这样的令牌信息,它也会记住以前的用户:

FBSession.activeSession().closeAndClearTokenInformation()

出于测试目的,我在提交登录之前清除了令牌。

只有在我重置整个应用时,通过删除它或在模拟器中重置内容和设置才会忘记

让我们说另一个用户想要在同一设备上登录,这是不可能的。

如何让它忘记以前的用户?

4 个答案:

答案 0 :(得分:1)

对我来说,上述解决方案都没有奏效。

我能够注销,但无法在下一个登录屏幕上更改用户。

通过初始化FBSDKLoginManager,我找到了一种在从FB注销后更改用户的方法,如下所示:

faceBookLoginManager = [[FBSDKLoginManager alloc] init];
faceBookLoginManager.loginBehavior = FBSDKLoginBehaviorWeb;

使用上面的代码时,在使用[faceBookLoginManager logOut];登录弹出窗口完成logOut后,再次询问用户名/密码,以便可以使用其他用户。

答案 1 :(得分:0)

我通过使用另一种方法来推销用户凭据来解决我的问题。

我用过

FBSession.activeSession().openWithBehavior(FBSessionLoginBehavior.ForcingWebView, completionHandler:{
    // Stuff...
}

使用.ForcingWebView,它始终会重新开始并提升用户的凭据。

答案 2 :(得分:0)

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

答案 3 :(得分:0)

Facebook SDK可从Safari获取您的Facebook登录访问权限。如果您只是在Safari中退出Facebook,则应用会忘记以前的用户是谁。