使用 Facebook 帐户登录和注销
Posted
技术标签:
【中文标题】使用 Facebook 帐户登录和注销【英文标题】:Login and Logout with Facebook account 【发布时间】:2018-01-28 10:28:18 【问题描述】:我想将 Facebook 帐户登录添加到我的 ios 应用程序。我尝试安装 FacebookCore pod 和 FacebookLogin pod。我的登录操作成功,但是当我尝试注销然后再次登录时,浏览器使用了以前登录的帐户。这是我的登录和注销操作代码:
override func viewDidLoad()
super.viewDidLoad()
let loginButton = LoginButton(readPermissions: [ .publicProfile ])
loginButton.center = view.center
//adding it to view
view.addSubview(loginButton)
loginButton.delegate = self
func loginButtonDidCompleteLogin(_ loginButton: LoginButton, result: LoginResult)
print("logged in")
self.loginButtonClicked()
func loginButtonDidLogOut(_ loginButton: LoginButton)
print("logged out")
AccessToken.current = nil
UserProfile.current = nil
FBSDKLoginManager().logOut()
//when login button clicked
func loginButtonClicked()
let loginManager = LoginManager()
loginManager.loginBehavior = .web
loginManager.logIn(readPermissions: [.publicProfile], viewController: self, completion: loginResult in
switch loginResult
case .failed(let error):
print("loginnnnnn errrooorrr",error)
case .cancelled:
print("User cancelled login.")
case .success(let grantedPermissions, let declinedPermissions, let accessToken):
self.getFBUserData()
)
//function is fetching the user data
func getFBUserData()
if((FBSDKAccessToken.current()) != nil)
FBSDKGraphRequest(graphpath: "me", parameters: ["fields": "id, name, picture.type(large), email"]).start(completionHandler: (connection, result, error) -> Void in
if (error == nil)
self.dict = result as! [String : AnyObject]
self.isLogin = true
print(result!)
print(self.dict)
)
如何使用其他帐户登录?
【问题讨论】:
我确定您已经看过这个very related question,这似乎表明您需要做的就是致电logOut
。我不明白的是为什么您的某些代码在一个函数中显示FBSDKAccessToken
而在另一个函数中显示AccessToken
。
@MichaelDautermann 我将每个 FBSDKAccessToken 更改为 AccessToken ,我尝试了所有此链接,但注销后我可以输入新的用户名密码,我在网络上收到此文本:您以前使用 Facebook 登录到 LoginSampleTaban。要继续吗?
我认为这是 FacebookSDK 中的一个问题,您必须自己从 safari 的 Facebook 页面注销用户。
您只能拥有一个帐户。为什么需要使用其他帐户登录?
正如@WizKid 所说,它已经考虑到每个用户只有一个facebook 帐户,并且提到的问题只发生在您处于开发测试模式时,而不是当您是真正的最终用户时。跨度>
【参考方案1】:
我有类似的问题,我收到了
您之前使用 Facebook 登录到 [应用名称]。你愿意吗 继续?
每次我想登录我的应用程序时,即使在注销后也是如此。
我通过使用 Facebook 原生应用程序(版本 177)解决了这个问题。 您可以在此处从您的应用中“注销”:
菜单选项卡 -> 设置 -> '应用程序和网站' -> '使用 Facebook 登录' -> 激活 -> 选择应用程序 -> 点击删除
【讨论】:
以上是关于使用 Facebook 帐户登录和注销的主要内容,如果未能解决你的问题,请参考以下文章
Firebase Facebook 登录即使在卸载应用程序后清除缓存和注销