我已经试过周围寻找,但我无法找到答案,我的问题。
我玩弄从GitHub这个应用程序: https://github.com/Yalantis/Koloda/tree/master/Example
我使用它,因为我在做这将使用基于图块刷卡从这个应用程序的项目。
我还使用火力。 到目前为止,我可以将用户添加到我的数据库,因此应用程序和火力点连接。
我也希望用户使用Facebook的注册/登录。
我已经与我的应用程序Facebook和用户可以进来,并成功登录使用Facebook的身份验证。
我遇到的问题是退出。
当我点击退出按钮,我希望用户被完全注销。 因此,有自带的Facebook的SDK称为注销注销方法。 这里是我的代码的相关部分。
import FBSDKLoginKit
@IBAction func handleLogout(sender: AnyObject) {
facebookLogin.logOut()
print("loggedout")
}
所以,当我点击注销,然后点击登录我再次得到这个页面:
http://imgur.com/owi3zZn
我不希望用户停留授权他们已经点击了注销按钮后。 如何让这个当我点击退出按钮,用户完全从Facebook注销,然后当他们点击他们必须重新输入自己的用户名/密码登录按钮?
我试着环视webz,但无法找到一个解决我的问题,但我敢肯定它的东西很简单,我希望!
谢谢您的帮助,对不起,如果格式较差。
当你打电话注销,用户将被注销您的应用程序。 至于记录出来的Facebook,我不认为你能做到这一点,也不会Facebook的允许。 第一次一个用户授权您的应用程序通过Facebook,Facebook的增加了您的应用程序,他们被授权使用(他们可以通过Facebook.com访问该网页)的应用程序的列表。 当他们注销并重新登录,他们会看到你贴的,因为他们已经认可它的图片页面。 为他们重新授权自己的唯一方法是从他们的Facebook应用程序页面上删除应用程序,并重新登录到您的应用程序。
如果从应用程序本身使用户退出程序,你可以检查下面的代码
let loginView : FBSDKLoginManager = FBSDKLoginManager()
loginView.loginBehavior = FBSDKLoginBehavior.Web
这将在您的应用程序打开Facebook登录弹出,其中用户可以在自己的应用程序登录
而对于注销,你可以调用
let manager = FBSDKLoginManager()
manager.logOut()
这将在应用中的Facebook注销用户,在此之后,如果你调用SDK的登录方法,你将再次看到登录弹出
如果你想清除的个人资料和令牌又拨打了下面的代码与注销
FBSDKAccessToken.setCurrentAccessToken(nil)
FBSDKProfile.setCurrentProfile(nil)
目前Facebook的SDK处理这个问题的方法似乎是一个安全漏洞给我。 如果我借用一个朋友的iPad和登录与Facebook的应用程序,当我注销我应该完全退出应用程序和SFSafariViewController它曾经给我验证。 而现在它使用cookie仍然记得我在SFSafariViewController。
要正确注销用户都来自Facebook的SDK和SFSafariViewController我做到以下几点:
let fbLoginManager = FBSDKLoginManager()
fbLoginManager.logOut()
let cookies = HTTPCookieStorage.shared
let facebookCookies = cookies.cookies(for: URL(string: "https://facebook.com/")!)
for cookie in facebookCookies! {
cookies.deleteCookie(cookie )
}
我真的不喜欢这个解决方案,但它是我已经能够拿出最好的。
用户丹L具有正确的答案,在我的意见之一 ,他写道:
哦,我明白你的意思。 如果你进入Safari浏览器的应用程序,你可以去Facebook.com和您的帐户注销,登录到不同的帐户,并返回到您的应用程序。 Safari的扩展弹出,当你调用Facebook登录应该显示登录的新用户!
这正是我需要的。 谢谢丹L.