html页面,验证密码后跳转进入该页面,不能直接输入url进入改页面,怎么办?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了html页面,验证密码后跳转进入该页面,不能直接输入url进入改页面,怎么办?相关的知识,希望对你有一定的参考价值。

参考技术A

在A页面输入完验证码通过后,传一个值给B页面,request.setAttribute("check","true");然后在B页面的开头取得这个值,String check = request.getAttribute("check");if(check==null||check=="").在A页面输入验证码,跳B页面。在A页面输入完验证码通过后,传一个值给B页面如果要求不能用后台实现,只在前台实现的话。

因为浏览器前进后退是直接读取浏览器缓存的html页面,而不是访问服务器。所以只要禁用浏览器缓存即可在后退前进时再去访问服务器,只要它访问服务器,我们这时就可以使用拦截器,判断session中是否有登录信息!这样就可以实现退出后点击浏览器后退不能退回到成功页面而是一直在登录页面!

vue实现登录后跳转到之前的页面

在开发中我们经常遇到这样的需求,需要用户直接点击一个链接进入到一个页面,用户点击后链接后会触发401拦截返回登录界面,登录后又跳转到链接的页面而不是首页,这种问题该如何去做呢?

先说一下我们需要用到的几个API:

1.router.currentRoute:当前的路由信息对象,我们可以通过router.currentRoute.fullPath获得解析后的 URL,包含查询参数和 hash 的完整路径,如果要访问的页面的路由有命名(name)的话,可以通过router.currentRoute.name获得当前路由的名称。

2.router.replace:作用和router.push相同,不过它不会向history添加新纪录,而是替换当前的history记录。

 

由于大家的代码写的都不一样,我就不放我具体的实现代码,简单介绍一下思路:

1.用户点开链接后,跳转到的目标的路由页面,然后触发401拦截器,返回登录页面:

//401拦截
if(status == "401"){
    router.push("/login")      
}

2.我们可以在401拦截的时候将目标链接保存在url中:

if (status == 401) {
      //判断当前的路由是否是目标路由
      if(router.currentRoute.name == "target"){
        //跳转回login路由,并把目标路由的url路径保存在login的query中
        router.replace({
          name:"login",
          query: {redirect: router.currentRoute.fullPath}
        })
      }else{
        /* 普通401拦截直接返回到登录页面 */
        router.push(‘/login‘);
      }
    }

3.点击登录后使用url上保存的query直接跳转回目标页面

router.push({path:decodeURIComponent(url)});

 

以上是关于html页面,验证密码后跳转进入该页面,不能直接输入url进入改页面,怎么办?的主要内容,如果未能解决你的问题,请参考以下文章

怎么实现扫描二维码跳转到指定页面

html自动点击链接后跳转到指定页面

input password密码验证跳转页面

vue实现登录后跳转到之前的页面

ASPX直接打印后跳转页面如何实现

servlet进入数据库验证用户名密码,用户名密码写错 怎么跳转到登录页面?/