根据登陆状态跳转对应路径

本文介绍了如何通过保存登录后的Cookie,并结合路由守卫在Vue.js应用中实现在用户未登录时限制访问特定页面。登录时设置Cookie,路由守卫根据Cookie判断用户状态并决定跳转,登出时清除Cookie。此方案适用于需要用户验证的项目,但实际应用中可能涉及更多细节,如请求处理和Vuex状态管理。

需求

用户没有登录不能做任何操作

实现思路

1,登录成功保存 cookie
2,路由守卫根据 cookie 跳转对应路径
3,登出清除 cookie (或者设置cookie的存活时间)

1,登陆保存 cookie

Cookies.set(TokenKey, “xxxxxx”)

2,路由守卫根据 cookie 跳转对应路径

// main.js && main.ts

router.beforeEach((to, from, next) => {
  // 判断将要跳转的路径没有验证 (true)
  if (to.matched.some(m => m.meta.auth)) {
  // 如果存在 cookkie (getJWTToken(),是我封装的一个方法)
    if (getJWTToken()) {
      next()
    } else {
      next({ path: "/login" })
    }
  } else {
    next()
  }
  // console.log(from, to)
})
// router ⇒ index.ts 
//  如果该路由需要验证,就加上 meta: { auth: true };
  {
    path: '/addWorks',
    name: '作品上传',
    component: addWorks,
    meta: {
      auth: true
    }
  },
  {
    path: '/apply',
    name: 'apply',
    component: () => import(/* webpackChunkName: "about" */ '@/views/apply/apply.vue'),
  }

3,登出清除 cookie (或者设置cookie的存活时间)

Cookies.remove(TokenKey)

注意

这个案例只是简单介绍一下利用路由守卫根据用户是否登录,从而判断路由跳转的小栗子。具体还要看你们项目,譬如,一般项目保存 cookie 是直接就在请求里面操作的,又或者是利用 vuex 实现的,方法不限。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值