使用 react-native-fbsdk 注销的正确方法

htt*_*ete 5 react-native react-native-fbsdk

我正在使用react-native-fbsdk我的 react-native 应用程序通过 Facebook 登录。
我打电话LoginManager.logOut()给注销:它实际上并没有正确注销,因为我下次尝试登录时,它不会再次要求我输入登录名/密码,所以我只能用一个帐户登录。我找不到登录另一个 Facebook 帐户的方法。

这家伙(react-native-fbsdk:如何正确地从 facebook 注销?)遇到了同样的问题,似乎没有找到解决方案。

iOS 上的一个技巧是转到 safari,然后从移动 facebook 网站注销。虽然这在android上不起作用:(

编辑:

这是我的facebook登录代码:

function login() {
  return LoginManager.logInWithReadPermissions(FACEBOOK_PERMISSIONS)
    .then(result => {
      if (result.isCancelled) {
        throw new Error("Login canceled");
      }
      return AccessToken.getCurrentAccessToken();
    })
    .then(({ accessToken }) => accessToken);
}
Run Code Online (Sandbox Code Playgroud)

注销/登录视频:https : //d3vv6lp55qjaqc.cloudfront.net/items/132L2U1p383E1y0l2l2v/Screen%20Recording%202018-10-31%20at%2002.52%20PM.mov

zag*_*goa 3

所以我找到了这个解决方案,这不是黑客,而是在 Facebook 上执行注销的正确方法。您需要创建一个 GraphRequest 来请求删除权限。下面是代码,希望对你有帮助。我在 Android 和 IOS 上测试了它,效果非常好。

    FBLogout = (accessToken) => {
        let logout =
            new GraphRequest(
                "me/permissions/",
                {
                    accessToken: accessToken,
                    httpMethod: 'DELETE'
                },
                (error, result) => {
                    if (error) {
                        console.log('Error fetching data: ' + error.toString());
                    } else {
                        LoginManager.logOut();
                    }
                });
        new GraphRequestManager().addRequest(logout).start();
    };
Run Code Online (Sandbox Code Playgroud)

  • 它会注销,但当我尝试再次登录时,它不会要求提供电子邮件或密码,我只能使用同一用户重新登录。:( (3认同)
  • 大家好,我已经发布了一个 github 问题,你可以在这里关注 https://github.com/facebook/react-native-fbsdk/issues/507 (2认同)