【发布时间】:2020-11-12 17:13:00
【问题描述】:
我使用 FirebaseAuth(电子邮件/密码)作为身份验证来访问我的 Flutter 网站上的页面。我想确保在没有有效用户会话的情况下无法通过 URL 直接访问页面/小部件。
我目前正在使用以下内容,它可以工作,但它会导航后期小部件构建,这对于 Navigator 的工作来说似乎必不可少。然而,从可用性的角度来看,它看起来很糟糕,因为页面会闪烁然后返回。
在初始化状态
//Check if user is logged in
auth.onAuthStateChanged.listen((user) {
if (user != null) {
print('User active');
isLoggedIn = true;
} else {
print('User logged out');
isLoggedIn = false;
}
});
在小部件构建功能中
if (!isLoggedIn) {
SchedulerBinding.instance.addPostFrameCallback((_) {
Navigator.pushNamed(context, '/');
});
}
我能想到的唯一选择是首先在每个页面上加载的“授权”小部件,检查并转发用户,但它仍然很笨重,并不能真正很好地解决我的问题。
什么是 Flutter web 中更好的页面安全方法?
【问题讨论】:
标签: flutter dart flutter-web