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

网友投稿 1075 2023-02-28


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

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

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

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

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

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

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

/TNEuXUqQ/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拦截直接TNEuXUqQ返回到登录页面 */

router.push('/login');

}

}

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

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

以上就是我们分享的功能实现代码,感谢你对我们的支持。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:后台api接口文档(web后端api接口开发教程)
下一篇:Java并发底层实现原理学习心得
相关文章

 发表评论

暂时没有评论,来抢沙发吧~