Flutter中利用拦截器实现Token失效后自动刷新token

业务场景 :
       在业务中经常会遇到这种需求,用户登录后用户token是具有一定的时效性的,当token过期后怎样刷新token,且用户并不会感知到token已经刷新了呢,这个时候就需要我们在拦截器里面进行处理了。

实现方式:一般后台会定义一个token 一个refreshToken,当token失效后,利用refreshToken去请求获取新的token再刷新token;

关键代码:
        首先定义一个TokenInterceptor继承至Interceptor,重写onResponse或者onError方法,具体看后台是怎么定义token失效规则的,如果后台自己定义了一套规则来判断token失效的话,重写onResponse即可,下面用它来说明:

首先将后台返回的数据解析出来

final String data = response.data.toString();
BaseResult baseResult =BaseResult.fromJson(json.decode(data));


然后根据解析得到的BaseResult后台返回的对应的code码进行判断,具体的规则根据后台制定的为准,假设401是失效状态
 

if (baseResult.resultCode ==401) {
   //Todo token失效进行token刷新
}


//下面是刷新token的代码
if (baseResult.resultCode ==401) {
    //获取全局的dio实例
    Dio dio = DioUtil.instance().dio;
    dio.lock();
    var newToken = a
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值