vue使用路由判断是否登录

router.beforeEach((to, from, next) => {

  // console.log('to:' + to.path)

  if (to.path.startsWith('/login')) {

    window.sessionStorage.removeItem('access-user')

    next()

  } else {

    let user = JSON.parse(window.sessionStorage.getItem('access-user'))

    if (!user) {

      next({path: '/login'})

    } else {

      next()

    }

  }

})

转载于:https://www.cnblogs.com/wangyunhui/p/7372103.html

Vue使用路由守卫可以很方便地判断用户是否已经登录,如果未登录则跳转到登录页面。以下是一个简单的例子: ```javascript import Vue from 'vue' import Router from 'vue-router' import Login from '@/views/Login.vue' import Dashboard from '@/views/Dashboard.vue' Vue.use(Router) const router = new Router({ routes: [ { path: '/', name: 'Dashboard', component: Dashboard, meta: { requiresAuth: true // 添加 meta 属性,表示需要登录才能访问该页面 } }, { path: '/login', name: 'Login', component: Login } ] }) router.beforeEach((to, from, next) => { if (to.meta.requiresAuth && !isAuthenticated()) { // 判断该页面是否需要登录,以及用户是否已经登录 next('/login') // 如果未登录则跳转到登录页面 } else { next() // 否则放行 } }) function isAuthenticated () { // 判断用户是否已经登录,可以根据实际情况自行实现 return localStorage.getItem('username') !== null } export default router ``` 在上面的例子中,我们定义了两个路由,一个是 `/`,表示用户登录后进入的主页,另一个是 `/login`,表示登录页面。在定义 `/` 路由时,我们通过添加 `meta` 属性来表示该页面需要登录才能访问。在路由守卫中,我们通过调用 `isAuthenticated` 函数来判断用户是否已经登录,如果未登录则跳转到登录页面,否则放行。 需要注意的是,这里的 `isAuthenticated` 函数只是一个示例,需要根据实际情况自行实现。在实际开发中,我们可能需要从后台获取用户信息并保存到本地,然后通过判断本地是否有用户信息来判断用户是否已经登录
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值