如何使用使用斯威夫特和iOS Facebook验证注销用户?如何使用使用斯威夫特和iOS Faceb

2019-05-12 02:32发布

我已经试过周围寻找,但我无法找到答案,我的问题。

我玩弄从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,但无法找到一个解决我的问题,但我敢肯定它的东西很简单,我希望!

谢谢您的帮助,对不起,如果格式较差。

Answer 1:

当你打电话注销,用户将被注销您的应用程序。 至于记录出来的Facebook,我不认为你能做到这一点,也不会Facebook的允许。 第一次一个用户授权您的应用程序通过Facebook,Facebook的增加了您的应用程序,他们被授权使用(他们可以通过Facebook.com访问该网页)的应用程序的列表。 当他们注销并重新登录,他们会看到你贴的,因为他们已经认可它的图片页面。 为他们重新授权自己的唯一方法是从他们的Facebook应用程序页面上删除应用程序,并重新登录到您的应用程序。



Answer 2:

如果从应用程序本身使用户退出程序,你可以检查下面的代码

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

这将在您的应用程序打开Facebook登录弹出,其中用户可以在自己的应用程序登录

而对于注销,你可以调用

let manager = FBSDKLoginManager()
manager.logOut()

这将在应用中的Facebook注销用户,在此之后,如果你调用SDK的登录方法,你将再次看到登录弹出

如果你想清除的个人资料和令牌又拨打了下面的代码与注销

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


Answer 3:

目前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 )
    }

我真的不喜欢这个解决方案,但它是我已经能够拿出最好的。



Answer 4:

用户丹L具有正确的答案,在我的意见之一 ,他写道:

哦,我明白你的意思。 如果你进入Safari浏览器的应用程序,你可以去Facebook.com和您的帐户注销,登录到不同的帐户,并返回到您的应用程序。 Safari的扩展弹出,当你调用Facebook登录应该显示登录的新用户!

这正是我需要的。 谢谢丹L.



Answer 5:

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

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

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



文章来源: How to logout user using Facebook authentication using Swift and iOS?