用户登录

用户登录成功以后我们可以把登录相关的一些数据存储在设备的磁盘里,这样应用在启动的时候我们可以读取存储的数据,然后恢复一下用户的登录状态。

要在设备的磁盘里存储数据,我们可以借助一个叫 shared preferences 的插件。先给项目安装一下这个插件,在终端,项目所在目录的下面,执行一下 flutter pub add shared_preferences ,添加一个依赖,名字是 shared_preferences 。

auth_model.dart

安装完成以后,打开 auth_model.dart ,在这里先定义两个方法,一个是 storeAuth,接收一个 Auth 类型的参数,名字是 auth,用 async 标记一下这个方法。在这个方法里声明一个 prefs ,它的值可以 await,执行一个 SharedPreferences.getInstance 这个方法。

这个 prefs 里面有些方法可以设置读取或者删除数据。这里用一下 prefs 上面的 setString,存储一个字符串类型的值,第一个参数是给这个数据起的名字,这里设置成 auth,对应的值可以用 jsonEncode 处理一下方法的 auth 参数。这个 jsonEncode 会自动调用这个 auth 里的 toJson() 方法。

再定义一个方法,名字是 removeAuth,用 async 标记一下,声明一个 prefs ,值是 SharedPreferences.getInstance() 这个方法返回的东西,下面再用一下 prefs 上面的 remove,删除掉名字是 auth 的这个数据。

找到 login 方法,这里登录成功以后,可以执行一下 storeAuth,把 auth 交给这个方法,它会把这里提供的 auth 数据存储到设备的磁盘上。

再找到 logout 方法,在这个方法里执行一下 removeAuth,从设备的磁盘上把 auth 这个数据删除掉。

测试

打开用户页面,按一下登录,在登录页面输入用户,还有这个用户对应的密码,确定一下登录。这里提示了一个错误,说找不到插件。打开调试,这里我们可以先停止一下,然后重新运行一下 Run and Debug。

重新编译启动以后,再打开用户,按一下登录,输入用户名,还有对应的密码,确定一下登录。成功以后,会在设备磁盘里存储登录相关的数据。

用 Shared preferences 插件记住登录状态《 Flutter 2:状态管理(2) 》

统计

14696
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点