注销时flutter_facebook_auth插件未清除数据

Posted

技术标签:

【中文标题】注销时flutter_facebook_auth插件未清除数据【英文标题】:flutter_facebook_auth plugin not clearing the data when logging out 【发布时间】:2021-09-20 23:16:23 【问题描述】:

我正在使用 flutter_facebook_auth 3.5.0 插件让用户能够使用他们的 Facebook 帐户登录我的应用程序。

一切都按预期工作。但是当我注销并尝试再次登录时,它并没有提示我输入凭据并直接让我登录。

我希望它提示用户输入他们的 Facebook 帐户凭据,然后仅在身份验证成功时才登录应用程序。

下面是登录代码:

Future<void> signInWithFacebook(BuildContext context) async 
    User? firebaseUser;
    LoginResult response = await FacebookAuth.instance.login();
    AuthCredential facebookCredential = FacebookAuthProvider.credential(response.accessToken!.token);
    final UserCredential userCredential = await FirebaseAuth.instance.signInWithCredential(facebookCredential);
    firebaseUser = userCredential.user;
    switch (response.status) 
      case LoginStatus.success:
        final userData = await FacebookAuth.instance.getUserData();
        facebookUserData = userData;
        firestoreInstance.collection("users").doc(firebaseUser!.uid).set(
          "userID": firebaseUser.uid,
          "name": facebookUserData["name"],
          "photo": facebookUserData["picture"]["data"]["url"],
          "emailAddress": facebookUserData["email"],
          "signUpMethod": "facebook",
          "accountCreatedOn": Timestamp.now(),
          "receiveOffers": true,
          "isAdmin": false,
          "isAuth": false,
          "isSubscribed": false,
        );
        Navigator.of(context).pushReplacement(ScaledAnimationPageRoute(HomePage()));
        break;
      case LoginStatus.cancelled:
        print("Facebook: User cancelled login");
        break;
      case LoginStatus.failed:
        print("Facebook: Login error!");
        break;
      case LoginStatus.operationInProgress:
        // TODO: Handle this case.
        break;
    
  

退出方法如下:

await FacebookAuth.instance.logOut();
      facebookUserData = ;
      await authInstance.signOut().then((value) => Navigator.of(context).pushReplacement(ScaledAnimationPageRoute(SignIn())));

我认为在用户注销时需要清除AuthCredential。我不知道该怎么做。

我是 Flutter 的新手。我该如何解决这个问题?

【问题讨论】:

以上的解决方法你得到了吗? 【参考方案1】:

flutter_facebook_auth 3.5.0here的github项目上已经有issue了。

它看起来像是对 Facebook 的模仿,而不是插件本身。

【讨论】:

【参考方案2】:

改用名为 flutter_facebook_login 的包...我正在使用这个包,它运行良好

【讨论】:

以上是关于注销时flutter_facebook_auth插件未清除数据的主要内容,如果未能解决你的问题,请参考以下文章

Auth模块插拔式设计BBS表设计

单击注销时如何从所有活动会话中注销?

如何在注销/注销时清除 ReactJs 中的所有商店?

使用 cookie 时注销

用户注销时数据库连接需要时间吗?或从asp.net问题注销

Spring SAML - 用户从应用程序注销时是不是必须调用 SAML 本地注销?