【问题标题】:Facebook Logout is not working in new SDKFacebook 注销在新 SDK 中不起作用
【发布时间】:2026-02-11 15:20:06
【问题描述】:

每次获得用户的授权屏幕。我无法使用其他用户登录。我认为问题是,Safari 存储 cookie。

这可能在 Facebook SDK 中存在错误。

【问题讨论】:

    标签: ios objective-c iphone safari facebook-ios-sdk


    【解决方案1】:

    1.清除到 facebookToken

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

    2。注销 FBSDKLoginManager。

    let manager = FBSDKLoginManager()
    manager.logOut()
    

    注意:如果您选择 FBSDKLoginBehavior 是在 UIWebView 中打开 Facebook 登录页面的 Web,它会从应用程序中注销。如果您选择 Native,则在 safari 浏览器中打开 Facebook 登录页面并将数据存储在 safari 中。

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

    【讨论】:

    • 谢谢..FBSDKLoginBehavior.Web 解决了我的问题。
    【解决方案2】:

    你必须导入FBSDKLoginKit 然后:

     FBSDKAccessToken.setCurrentAccessToken(nil)
     FBSDKProfile.setCurrentProfile(nil)
    
    let manager = FBSDKLoginManager()
    manager.logOut()
    

    【讨论】:

      【解决方案3】:

      打开 Safari,访问 facebook.com 网站并注销。我认为它是移动网站顶部的第 6 个选项卡,注销选项位于底部。

      编辑:

      无法从第三方应用程序读取 Safari cookie, 相反,它会使用户隐私陷入陷阱。截至目前,这 可能是使用不同凭据登录的可能方式 次。

      和[FBSDKAccessToken setCurrentAccessToken:nil];这可以是 只是将 sdk 的 accesstoken 重置为 nil,从而启用“注销” 到“使用 Facebook 登录”并在再次单击时重新启动 safari facebook 授权。

      【讨论】:

      • 我只想从我的应用程序中注销 safari。