vue中路由控制登陆不能随便跳转

需求: 如果不登录就不能随便操作路由
比如说 http://192.168.0.100 打开登陆页面
输入http://192.168.0.100 /#/home 跳转到home页面
所以必须控制路由,才能完成输入登陆页面成功跳转到home页面,而不是直接写一个home页面的链接就跳过来了
配置基本步骤:
1.需要在登陆页面配置
当登陆成功后

if(res.data.success) {
	sessionStorage.setItem('username',res.data.username) //需要后端返回 等同token
	this.$router.push('/home' ) // 跳转
}

2.需要在路由的indes.js配置
代码如下:

// 设置路由的前置守卫(路由跳转之前)
router.beforeEach((to, from, next) => {
   if (to.name == 'Login') {
    next();
   } else {
     // 判断sesstion里有没有username
     const username = sessionStorage.getItem('username');
     if (username) {
      next();
   } else {
      next({path: '/'})
     }
  }
})

3.配置退出按钮

sessionStorage.clear(); // 删除sesstion数据
this.$router.push({ path: "/" }); //跳转到登陆页面

在这里需要说明 sesstionStorage的生命周期,当关闭网页就消失了,
此处用的是username 如果是token 需要再axios的拦截器中添加这一行代码,其他等同

// 在axios拦截器中添加 一般token是随着请求头
 if (config.url !== '/') {
   const token = sessionStorage.getItem('token');
    //  设置请求头
   config.headers.Authorization = token;
   }

还有的是利用vuex登陆的这个慢慢研究

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值