Flutter Web:保持用户登录/记住我功能的正确方法
Posted
技术标签:
【中文标题】Flutter Web:保持用户登录/记住我功能的正确方法【英文标题】:Flutter Web: Correct way of keeping user logged in/Remember me functionality 【发布时间】:2021-07-11 03:37:28 【问题描述】:我正在开发一个网络应用程序,我希望在页面刷新期间让用户保持登录状态,或者即使该标签不再存在,就像 youtube/gmail 网络应用程序一样。如何创建???
在 android/ios 的颤振移动设备中,我们可以使用共享首选项,它使用 android 的共享首选项和 ios 的 NSUserDefaults 来实现该功能。但在 Flutter web 的情况下,我们无法将用户凭据存储到本地/会话存储中,甚至无法存储在 cookie 中。
我最近开始使用flutter web,所以请指导我正确的道路,非常感谢任何好的资源链接。
【问题讨论】:
您可以使用共享偏好。当您登录时。然后在注销时设置值然后重置值/更改值,***.com/questions/54377188/… 不要将用户凭据存储到本地/会话存储中。将用户访问令牌存储到 SharedPreferences。 【参考方案1】:已编辑:您可以使用 pub.dev 中的 hivedb 包来支持网络上的安全和高速存储:
import 'package:hive/hive.dart';
import 'dart:convert';
void main() async
//Hive.init('somePath') -> not needed in browser
var box = await Hive.openBox('testBox');
box.put('user', json.encode(User(name:'john',password:'pass')));
print('Name: $box.get('user')');
-
https://pub.dev/packages/hive
https://docs.hivedb.dev/#/
【讨论】:
使用本地存储不安全,因为任何人都可以访问它们以上是关于Flutter Web:保持用户登录/记住我功能的正确方法的主要内容,如果未能解决你的问题,请参考以下文章
我是 Flutter Web 的新手,如何使用 Firebase 电话身份验证对用户进行身份验证,有没有办法让用户保持登录状态?
不确定如何正确实现 ChangeNotifierProvider 以记住 Flutter 中的登录用户