如何使用Swift和iOS使用Facebook身份validation注销用户?

我试过四处搜寻,但找不到我的问题的答案。

我正在玩github的这个应用程序: https : //github.com/Yalantis/Koloda/tree/master/Example

我正在使用它,因为我正在做一个项目,将使用从这个应用程序的基于磁贴的滑动。

我也在使用Firebase。 到目前为止,我可以添加用户到我的数据库,所以应用程序和firebase连接。

我也希望用户注册/login使用Facebook。

我已经将我的应用程序连接到Facebook,并且用户可以进入并使用Facebook身份validation成功login。

我遇到的问题是注销。

当我点击注销button时,我希望用户完全注销。 所以有一个注销方法来与facebook SDK称为注销。 这里是我的代码的相关部分。

import FBSDKLoginKit @IBAction func handleLogout(sender: AnyObject) { facebookLogin.logOut() print("loggedout") } 

所以当我点击注销,然后再次点击login,我得到这个网页:

View post on imgur.com

我不希望用户在点击注销button后保持授权。 我怎样才能做到这一点,当我点击注销button,用户完全从Facebook注销,然后当他们点击loginbutton,他们必须重新input他们的用户名/密码?

我试过在webz上查找,但找不到解决我的问题,虽然我确定这是非常简单的,我希望!

如果格式不好,谢谢您的帮助,并感到抱歉。

当您打电话给logOut时,用户将从您的应用程序中注销。 至于从Facebook注销,我不认为你可以这样做,也不会允许Facebook。 当用户第一次通过Facebook授权你的应用程序时,Facebook将你的应用程序添加到他们授权的应用程序列表(他们可以通过Facebook.com访问该页面)。 当他们注销并重新login时,他们将看到您张贴的图片页面,因为他们已经授权。 他们重新授权自己的唯一方法是从他们的Facebook应用程序页面中删除应用程序,并再次login到您的应用程序。

如果您要让用户以编程方式从应用程序本身注销,则可以检查以下代码

 let loginView : FBSDKLoginManager = FBSDKLoginManager() loginView.loginBehavior = FBSDKLoginBehavior.Web 

这将打开您的应用程序中的用户可以在您的应用程序login的Facebookloginpopup窗口

而对于注销,你可以打电话

 let manager = FBSDKLoginManager() manager.logOut() 

这将从应用程序中的Facebook注销用户,此后,如果您调用SDK的login方法,您将再次看到loginpopup窗口

如果你想清除configuration文件,令牌也可以通过注销来调用下面的代码

  FBSDKAccessToken.setCurrentAccessToken(nil) FBSDKProfile.setCurrentProfile(nil) 

从你的意见,我可以看到你想要的。

你可以重置你的模拟器的内容和设置:

点击模拟器/重置内容和设置

用户Dan L有正确的答案,他在我的一个评论中写道:

哦,我明白你的意思了。 如果你进入Safari的应用程序,你可以去Facebook.com和注销你的帐户,login到不同的帐户,并返回到您的应用程序。 当您致电Facebooklogin时popup的Safari浏览器扩展应显示已login的新用户!

这正是我所需要的。 谢谢Dan L.