微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

是否要在flutter中使用sharedPreferences启用“记住我”功能?

如何解决是否要在flutter中使用sharedPreferences启用“记住我”功能?

当前,如果用户成功登录一次,我将启用“保持登录功能。但是,我仍然要选中“记住我”复选框,以为用户保存成功登录信息。有人可以帮我吗?

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

代码如下所示:

  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是一个示例。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。