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 中的登录用户

记住密码"功能的正确设计

Firebase Unity 插件:如何保持用户会话? (自动登录)

如何使用 DRF JWT 实现记住我的功能?

注销和记住会话的最佳 Worklight 实践