无论如何要在flutter中使用sharedPreferences启用“记住我”功能?

2024-01-17

目前,如果用户成功登录一次,我已启用“保持登录”功能。但是,我仍然想制作一个“记住我”复选框来保存用户的成功登录信息。谁能帮我解决这个问题吗?

需要:一个复选框,使用户能够在用户成功登录后存储电子邮件和密码。

代码如下所示:

  signIn(String email, pass) async {
    SharedPreferences sharedPreferences = await SharedPreferences.getInstance();
    String url = ServerDetails.ip +
        ':' +
        ServerDetails.port +
        ServerDetails.api +
        'login';
    Map<String, String> headers = {"Content-type": "application/json"};
    var data = jsonEncode({
      'email': email,
      'password': pass,
      'token': FirebaseNotifications.fcmtoken
    });
    var jsonResponse = null;
    var response = await http.post(url, headers: headers, body: data);

    if (response.statusCode == 200) {
      jsonResponse = json.decode(response.body);
      if (jsonResponse != null) {
        setState(() {
          _isLoading = false;
        });
        sharedPreferences.setString("token", jsonResponse['token']);
        sharedPreferences.setString(
            "token_expire_date", jsonResponse['token_expire_date']);
        Navigator.of(context).pushAndRemoveUntil(
            MaterialPageRoute(builder: (BuildContext context) => MainPage()),
            (Route<dynamic> route) => false);
      }
    } else {
      setState(() {
        _isLoading = false;
      });
      Widget okButton = FlatButton(
          child: Text("OK"),
          onPressed: () {
            Navigator.push(
                context, MaterialPageRoute(builder: (context) => MainPage()));
          });
      setState(() {
        AlertDialog alert = AlertDialog(
          title: Text("Error message"),
          content: Text("Oops! The password is wrong or the email is invalid."),
          actions: [
            okButton,
          ],
        );
        showDialog(
          context: context,
          builder: (BuildContext context) {
            return alert;
          },
        );
      });
      print(response.headers);
      print(response.body);
    }
  }

当然,您可以创建一个简单的复选框remember me。在登录按钮中,您可以检查此复选框是否已选中。如果是,您可以在shared_preferences中设置电子邮件和密码。

下次,当用户再次出现时,您可以从shared_preferences自动获取这些字段。

Here https://stackoverflow.com/questions/54377188/how-to-use-shared-preferences-to-keep-user-logged-in-flutter就是一个例子。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无论如何要在flutter中使用sharedPreferences启用“记住我”功能? 的相关文章

随机推荐

  • 卡在“将 API 使用情况发送到 iTunes Connect”上

    我尝试将用 Starling 开发的游戏上传到应用商店 但 应用程序加载器 停留在 将 API 使用情况发送到 iTunes Connect 10 天前上传成功 新版本只有一行不同的代码编译是一样的 有人有这个问题吗 有人有解决办法吗 我尝
  • 如何启用Objectify XA事务?

    我正在同一类型的实体之间实现友谊功能Profile 该实体类型是根 非父 实体 一个配置文件有一个Set
  • Photoshop“黑白”调整图层背后的算法是什么?

    我做了很多研究 但没有找到任何东西 但我也不知道到底要搜索什么样的关键字 我希望能够转换输入RGB图像到灰度但我希望能够添加更多或更少红色 黄色 绿色 青色 蓝色 洋红色像Photoshop 您知道等式是什么吗 或者我在哪里可以找到这些等式
  • C语言中如何将int转换为float?

    我正在尝试解决 int total 0 number 0 float percentage 0 0 percentage number total 100 printf 2f percentage 如果数字的值为 50 总数为 100 我应
  • -xms 总和大于主机 RAM 的多个 JVM

    注意 我是 Java 新手 我是 Python 开发人员 JVM 的想法对我来说很陌生 假设您有一台 8 核 160GB RAM 的服务器 如果您使用 xms 100G 运行 Java 程序 它不会抛出任何错误 如果使用 xms 100G
  • Perforce 相当于 git local commit

    我在使用 Git 一年后才开始使用 Perforce 是否有任何等同于 git local commit 到我的分支的强制 本质上 如果我想要完成一项可能需要撤消和重做我的特定更改的复杂任务 有什么方法可以在 Perforce 中完成此任务
  • 是否可以在 Hudson/Jenkins 中用参数化字符串替换整个存储库 URL?

    在 Hudson Jenkins 中 是否可以替换entireSubversion 模块存储库 URL 中带有字符串参数的字符串 我不想只替换版本或类似的内容 我想替换整个网址 因此 当我运行构建时 我会收到输入 URL 的提示 我会输入类
  • C++ 从字符串中间提取数字

    我有一个vector含有strings遵循以下格式text number number Eg Example 45 3 我只想要第一个数字 45在示例中 并且我无法使用当前代码执行其他操作 std vector
  • 在不同的函数中分配的空闲内存?

    我正在尝试学习 C 目前正在尝试编写基本的堆栈数据结构 但我似乎无法掌握基本的知识malloc free right 这是我一直在使用的代码 我只是在这里发布一小部分来说明特定问题 而不是全部代码 但错误消息是通过运行此示例代码生成的val
  • PGAdmin III 无法连接 AWS RDS

    我正在尝试从 PgAdmin 3 连接 AWS RDS PostgreSql 我点击了以下链接http docs aws amazon com AmazonRDS latest UserGuide USER ConnectToPostgre
  • 创建包含多个 AAR/JAR 的 AAR

    我看到了一些问题 Android Studio 将 2 个 aar 合二为一 https stackoverflow com questions 30084314 android studio combine 2 aar into one和
  • Google 地图标记为链接

    我在我的网站上使用 Google 地图 但我想知道如何使用Markers作为链接 我的意思是当我单击标记打开特定链接时 先感谢您 这实际上很容易做到 只需将事件处理程序附加到您的标记 然后通过设置启动链接window location hr
  • 在 Hibernate JPA 实体中用另一个列表替换一个列表是否合法?

    假设一个 Hibernate 4 2 JPA 2 0 实体class EntityA 它包含一个 ManyToOne field List
  • 连接多个字典以创建新列表,其值作为原始字典的值列表

    我使用的是 Python 2 7 并且在这里查看了几个解决方案 如果您知道要合并多少个字典 这些解决方案就有效 但我可以有 2 到 5 个之间的任何内容 我有一个循环 它生成一个具有相同键但不同值的字典 我想将新值添加到以前的值中 Such
  • 过滤输入 URL 的最佳方法是什么?

    我有一个接受来自 PHP 用户的 URL 的表单 我应该允许或禁止哪些字符 目前我使用 input preg replace a zA Z0 9 string 输入 子字符串 输入 0 255 因此 它被修剪为 255 个字符 并且只能包含
  • 抑制地址清理程序的 gtest 的统一测试

    我正在我的单元测试上运行地址清理程序 Cmake 看起来像这样 cmake G Unix Makefiles DCMAKE CXX COMPILER clang 9 DCMAKE C COMPILER clang 9 DCMAKE C FL
  • 是否有 RedGate 的“穷人”替代品来编写整个数据库模式的脚本? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我现在的情况是 我想为数据库生成一个脚本 我可以在另一台服务器上运行该脚本 并获得与原始数据库相同的数
  • Eclipse 类路径条目仅用于测试

    在 Maven 中 你可以有编译时依赖关系和test依赖关系 这是我喜欢的一个功能 M2Eclipse 插件也使这个功能在 Eclipse 中可用 这非常棒 所以如果我添加jmock jar作为测试依赖项添加到我的项目中 它将显示在 JUn
  • 有什么办法可以使用路径查找图像吗? MediaStore.Images.Thumbnails (Android)

    我在用着MediaStore Images Thumbnails以显示用户拥有的图像 但我无法通过其路径获取图像 有什么办法可以使用路径查找图像吗 String proj MediaStore Images Thumbnails ID Me
  • 无论如何要在flutter中使用sharedPreferences启用“记住我”功能?

    目前 如果用户成功登录一次 我已启用 保持登录 功能 但是 我仍然想制作一个 记住我 复选框来保存用户的成功登录信息 谁能帮我解决这个问题吗 需要 一个复选框 使用户能够在用户成功登录后存储电子邮件和密码 代码如下所示 signIn Str