如何在 Flutter 中保存用户登录详细信息?

2024-04-26

我是颤振新手,想要制作一个只有经过身份验证的用户(通过填写电子邮件和密码)才能使用的应用程序。所以我正在考虑制作一个名为的根小部件Authentication我将在其中检查用户是否经过身份验证。如果他们是那么带他们去Home()Widget(基本上是应用程序主页),还有 SignIn() Widget(登录页面)。

  • I have to check for user authentication in 2 senerios:
    • 当应用程序打开时,之前登录的用户无需再次登录
    • 填写电子邮件 ID 和密码后,用户点击Sign In button

我面临以下问题,不知道如何解决它们(假设没有注册选项,并且用户数据直接输入到数据库而不是通过某些 UI ):

  • 如果用户已经登录,如何将他们直接带到Home()小部件?

    这是我目前拥有的代码,我不确定是否是执行此类应用程序的正确方法,因此如果有更好的方法来执行此操作,请告诉:


    import 'package:flutter/material.dart';
    import 'package:myapp/home.dart';
    import 'package:myapp/signIn.dart';


    void main() => runApp(Authenticate());

    class Authenticate extends StatelessWidget {


      final String authenticateEmail;
      final String authenticatePassword;

      Authenticate({this.authenticateEmail, this.authenticatePassword}); 




      // Make a call to db to check if the data provided is correct or not 
      // If it is correct we then navigate the user to Home() Widget 
      // Else to SignIn() Widget

  @override
  Widget build(BuildContext context) {

     if ( make some call to db to check if data is there) {
       return Home();
     }
     else {
       return SignIn();
     }

  }
}

上述代码的问题是,当应用程序第一次打开时,如何将用户直接带到 SignIn() 小部件,我应该用空字符串初始化字段并在方法中检查条件是否为空?


请改用用户会话。查看FlutterSession https://pub.dev/packages/flutter_session。该包在 Flutter 中添加了用户会话支持,并且易于使用。

bool isAuth = Authenticate({this.authenticateEmail, this.authenticatePassword});

// Store value to session
await FlutterSession().set("isAuth", isAuth);

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

如何在 Flutter 中保存用户登录详细信息? 的相关文章

随机推荐