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

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

遇到的问题是

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

解决办法是换一种不需要context 也能够进行页面跳转的方法。
利用GlobalKey1.创建全局方法。
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("/"))
 

原文地址:https://www.cnblogs.com/wupeng88/p/12611525.html

时间: 2024-10-19 00:21:55

flutter 统一处理token 失效返回登录页面的相关文章

asp.net mvc cookie超时返回登录页面问题

filterContext.HttpContext.Response.Write("<script>top.location.href = '/Login/Index';</script>"); 在使用超时设置时在本机调试时可以返回登录页面,在本机部署也可以,但是在服务器部署后没有跳转到登录页面,报错,以前的代码如下: public class HandlerLoginAttribute : AuthorizeAttribute    {        publ

session过期返回登录页面跳出frame

session 过期返回登录页面 方法1, HttpSession session = request.getSession(); String LOGIN_ID = (String) session.getAttribute("LOGIN_ID"); if (null == LOGIN_ID||"".equals(LOGIN_ID)) { java.io.PrintWriter out = response.getWriter(); out.println(&qu

如果后台用framset框架,session过期,整个跳出,返回 登录页面

如果session过期了,登录页面会在framset框架的右边显示,只能用 js 来做,让整个框架跳出去: 然而,这里 js 必须要用"top"才可以,作用是让整个framset都跳转,直接用 window.location.href是没有效果的: 1 //__MODULE__:TP框架分组常量 2 $group_url = __MODULE__; //分组,/index.php/Admin 3 4 //window.local.href跟TP框架的重定向"$this->

jQuery easyui Session 超时返回登录页面

说明:测试设置失效时间为1分钟,登录成功后1分钟去点击操作处罚事件,执行①连接到com.lactec.framework.ac.filter.AuthFilter这个类判断执行的action操作. 判断session是否为空,超时就返回,我用的是ajax请求:如果是ajax请求响应头会有,x-requested-with: 设置: rep.setHeader("sessionstatus", "timeout");//在响应头设置session状态        

带命名空间的action再次返回原来页面,命名空间引起的错误

今天写了一个登陆页面,这个相信对大家来说都没有难度,但是身为屌丝的我,犯贱了一次! 登陆页面表单提交,action中,我加了命名空间,详细如下: <form id="loginForm" action="actionPackage/login.action" method="post"> ...此处省略... </form> 登陆都没什么问题,但是问题是当我用户名或者密码错误的时候,我就应该重新返回登录页面,就在重新返回的

如何获得web view上的关闭按钮返回指定页面

最近遇到一个问题,注册页面是由客户提供web页面来注册的,这册后跳转到注册成功的web页面,这时候用户只提供了一个web页面,上边有一个按钮 可是点击这个按钮服务器端是不给任何回复数据的,也没有要跳转的页面,也就是说这只是一个web页面的按钮,如何才能给这个按钮添加一个事件,跳转到登录页面呢? 先给图: : 这两个都是webview中由服务器申请的页面: 想了2个方法: 一.检测由第一个页面进入第二个页面时的链接,在进入第二个页面时,在页面上添加一个透明的按钮,覆盖web上的按钮,这样可以添加返

Spring Security4.1.3实现拦截登录后向登录页面跳转方式(redirect或forward)返回被拦截界面

一.看下内部原理 简化后的认证过程分为7步: 用户访问网站,打开了一个链接(origin url). 请求发送给服务器,服务器判断用户请求了受保护的资源. 由于用户没有登录,服务器重定向到登录页面 填写表单,点击登录 浏览器将用户名密码以表单形式发送给服务器 服务器验证用户名密码.成功,进入到下一步.否则要求用户重新认证(第三步) 服务器对用户拥有的权限(角色)判定: 有权限,重定向到origin url; 权限不足,返回状态码403("forbidden"). 从第3步,我们可以知道

【2017-06-29】在登录页面自动返回上次请求页面、Js获取table中的行数与列数

一.在登录页面自动返回上次请求页面 Request.UrlReferrer比如 if (Request.UrlReferrer != null) { //如果能获取来路地址 Response.Redirect(Request.UrlReferrer.ToString());} else { //没有来路地址 Response.Redirect("index.aspx"); 二.Js获取table中的行数与列数 var table =document.getElementById(&qu

ajax请求session失效重定向到登录页面

在ajax请求的页面引入一个自定义的AjaxRedirect.js的文件 AjaxRedirect.js的代码如下: $(function(){ $.ajaxSetup({ type: 'POST', complete: function(xhr,status) { var sessionStatus = xhr.getResponseHeader('sessionstatus'); if(sessionStatus == 'timeout') { var top = getTopWinow()