flutter 登录和退出登录_flutter-登录token本地存储(shared_preferences)、路由拦截

登录token的处理,数据本地存储,路由拦截

登录逻辑

添加token

登录成功,保存token到本地,转跳到首页,移除其他栈,防止返回回到登录页面

移除token

未登录 路由拦截找不到token,转跳到登录页面或者弹窗

token过期,后台返回token,api拦截,移除token,转跳到登录页面

退出登录移除token,转跳到登录页面,移除前面所有路由栈

本地存储

flutter暂时没有内置本地存储,官方推荐shared_preferences

shared_preferences: ^0.5.4+1

复制代码import 'package:shared_preferences/shared_preferences.dart';

复制代码

基本用法

实例下

final prefs = await SharedPreferences.getInstance();

复制代码

保存

保存字符类型数据setString

保存int类型数据setInt

设置布尔类型数据setBool

设置Double类型数据setDouble

获取

获取字符类型数据getString

获取int类型数据getInt

获取布尔类型数据getBool

获取Double类型数据getDouble

移除

移除数据remove

清空

清空所有数据clear

(更多更详细请看官方文档,最下面的相关链接里面的SharedPreferences class)

登录成功数据存储(保存登录token)

Map data = response_map['data'];

final prefs = await SharedPreferences.getInstance();

final setTokenResult = await prefs.setString('user_token', data['token']);

await prefs.setInt('user_phone', data['phone']);

await prefs.setString('user_phone', data['name']);

if(setTokenResult){

debugPrint('保存登录token成功');

Navigator.of(context).pushNamedAndRemoveUntil('/', (route) => route == null,);

}else{

debugPrint('error, 保存登录token失败');

}

复制代码

没有登录转跳到登录页面

handleToken() async{

final prefs = await SharedPreferences.getInstance();

final token 

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值