当我提示用户使用他们的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()
出于测试目的,我在提交登录之前清除了令牌。
只有在我重置整个应用时,通过删除它或在模拟器中重置内容和设置才会忘记
让我们说另一个用户想要在同一设备上登录,这是不可能的。
如何让它忘记以前的用户?
答案 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,则应用会忘记以前的用户是谁。