我是颤振新手,想要制作一个只有经过身份验证的用户(通过填写电子邮件和密码)才能使用的应用程序。所以我正在考虑制作一个名为的根小部件Authentication
我将在其中检查用户是否经过身份验证。如果他们是那么带他们去Home()
Widget(基本上是应用程序主页),还有 SignIn() Widget(登录页面)。
- I have to check for user authentication in 2 senerios:
- 当应用程序打开时,之前登录的用户无需再次登录
- 填写电子邮件 ID 和密码后,用户点击
Sign In
button
我面临以下问题,不知道如何解决它们(假设没有注册选项,并且用户数据直接输入到数据库而不是通过某些 UI ):
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(使用前将#替换为@)