flutter 统一处理token 失效返回登录页面

Posted wupeng88

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了flutter 统一处理token 失效返回登录页面相关的知识,希望对你有一定的参考价值。

监听到code ==403 使用eventBus  统一触发。

遇到的问题是

Navigator.of(context).pushAndRemoveUntil(
                new MaterialPageRoute(builder: (context) => new loginPage()
                ), (route) => route == null);
这个方法只在当前页面生效,我是放着首页那块 了首页eventbus 触发,但是页面不跳转

解决办法是换一种不需要context 也能够进行页面跳转的方法。
利用GlobalKey
1.创建全局方法。
class Router {
  static GlobalKey<NavigatorState> navigatorKey = GlobalKey();
}
 
2.在main.dart中的MaterialApp下设置navigatorKey
MaterialApp(
          title: ‘app_name‘,
          theme: kLightTheme,
          navigatorKey: Router.navigatorKey, //设置在这里
      routes: {
        ‘/LoginPage‘: (ctx) => loginPage(),‘/MainPage‘: (ctx) => showPlatfrom(),
      },
3.跳转到登录页面
Router.navigatorKey.currentState.pushNamedAndRemoveUntil("/LoginPage", ModalRoute.withName("/"))
 

 

以上是关于flutter 统一处理token 失效返回登录页面的主要内容,如果未能解决你的问题,请参考以下文章

登录验证流程及token处理

登录token过期时间

单点登陆TOKEN的处理

小程序 判断是不是为新用户 登陆授权 封装request请求

toke过期失效 ---提示并跳转到登录页面

前端实战|React18极客园——布局模块(useRoutes路由配置处理Token失效退出登录)