当前位置:首页 > VUE

vue的路由实现登录

2026-02-24 13:52:44VUE

Vue 路由实现登录功能

路由配置

router/index.js 中配置登录路由和需要权限的路由。登录路由设置为公开访问,其他路由通过 meta 字段标记需要认证。

const routes = [
  {
    path: '/login',
    name: 'Login',
    component: () => import('@/views/Login.vue'),
    meta: { requiresAuth: false }
  },
  {
    path: '/dashboard',
    name: 'Dashboard',
    component: () => import('@/views/Dashboard.vue'),
    meta: { requiresAuth: true }
  }
]

路由守卫

使用全局前置守卫 beforeEach 检查路由是否需要认证。未登录用户尝试访问受保护路由时,重定向到登录页。

router.beforeEach((to, from, next) => {
  const isAuthenticated = localStorage.getItem('token')
  if (to.meta.requiresAuth && !isAuthenticated) {
    next('/login')
  } else {
    next()
  }
})

登录逻辑

在登录组件中处理用户认证。成功登录后存储 token 并跳转到目标页面。

methods: {
  async handleLogin() {
    try {
      const response = await loginApi(this.form)
      localStorage.setItem('token', response.data.token)
      this.$router.push('/dashboard')
    } catch (error) {
      console.error('Login failed', error)
    }
  }
}

注销处理

清除本地存储的认证信息并重定向到登录页。

methods: {
  handleLogout() {
    localStorage.removeItem('token')
    this.$router.push('/login')
  }
}

动态路由

对于更复杂的权限系统,可以根据用户角色动态添加路由。

vue的路由实现登录

const adminRoutes = [
  {
    path: '/admin',
    component: () => import('@/views/Admin.vue')
  }
]

function addDynamicRoutes() {
  const role = getUserRole()
  if (role === 'admin') {
    router.addRoutes(adminRoutes)
  }
}

标签: 路由vue
分享给朋友:

相关文章

vue实现购物按钮

vue实现购物按钮

Vue 购物按钮实现方法 基础按钮实现 使用 Vue 的模板语法创建基础按钮组件,绑定点击事件处理购物逻辑: <template> <button @click="addToC…

vue实现bootstrap

vue实现bootstrap

Vue 中集成 Bootstrap 的方法 在 Vue 项目中集成 Bootstrap 可以通过以下方式实现,涵盖样式、组件和交互功能。 安装 Bootstrap 依赖 通过 npm 或 yarn…

vue 实现遮罩

vue 实现遮罩

Vue 实现遮罩层的方法 使用固定定位和透明背景 在Vue中实现遮罩层可以通过CSS固定定位结合透明背景色完成。创建一个全屏遮罩组件,利用position: fixed覆盖整个视窗。 <tem…

vue实现api

vue实现api

Vue 实现 API 调用 在 Vue 中调用 API 通常涉及使用 axios 或 fetch 发送 HTTP 请求,并结合 Vue 的响应式特性管理数据。以下是常见的实现方式: 安装 axios…

vue实现队列

vue实现队列

Vue 实现队列功能 在 Vue 中实现队列功能可以通过多种方式完成,以下是几种常见的方法: 使用数组模拟队列 队列遵循先进先出(FIFO)原则,可以用数组的 push 和 shift 方法模拟入队…

vue实现数据

vue实现数据

Vue 实现数据绑定的方法 Vue.js 提供了多种方式实现数据绑定,包括双向绑定、单向绑定以及动态数据绑定。以下是几种常见的实现方式: 双向数据绑定(v-model) 双向数据绑定通常用于表单元素…