当前位置:首页 > VUE

vue实现拦截登录

2026-01-08 06:23:34VUE

Vue 实现登录拦截的方法

使用路由守卫进行拦截

Vue Router 提供了全局前置守卫 beforeEach,可以在路由跳转前进行验证。在路由配置文件中添加以下代码:

import router from './router'
import { getToken } from './utils/auth'

router.beforeEach((to, from, next) => {
  if (to.meta.requiresAuth && !getToken()) {
    next('/login')
  } else {
    next()
  }
})

定义路由元信息

在路由配置中,为需要登录才能访问的页面添加 meta 字段:

vue实现拦截登录

const routes = [
  {
    path: '/dashboard',
    component: Dashboard,
    meta: { requiresAuth: true }
  },
  {
    path: '/login',
    component: Login
  }
]

实现 Token 验证

创建一个 auth.js 工具文件,用于处理 Token 的存储和获取:

const TOKEN_KEY = 'vue_admin_token'

export function getToken() {
  return localStorage.getItem(TOKEN_KEY)
}

export function setToken(token) {
  localStorage.setItem(TOKEN_KEY, token)
}

export function removeToken() {
  localStorage.removeItem(TOKEN_KEY)
}

登录成功后设置 Token

在登录组件中,成功登录后调用 setToken 方法:

vue实现拦截登录

import { setToken } from '../utils/auth'

methods: {
  handleLogin() {
    login(this.loginForm).then(response => {
      setToken(response.data.token)
      this.$router.push('/dashboard')
    })
  }
}

响应拦截器处理 Token 过期

在 axios 的响应拦截器中处理 Token 过期的情况:

import axios from 'axios'
import { removeToken } from './auth'

axios.interceptors.response.use(
  response => response,
  error => {
    if (error.response.status === 401) {
      removeToken()
      router.push('/login')
    }
    return Promise.reject(error)
  }
)

退出登录处理

在退出登录时清除 Token 并跳转到登录页:

import { removeToken } from '../utils/auth'

methods: {
  logout() {
    removeToken()
    this.$router.push('/login')
  }
}

通过以上方法可以实现 Vue 应用的登录拦截功能,确保未登录用户无法访问受保护的路由。

标签: vue
分享给朋友:

相关文章

vue前端实现搜索

vue前端实现搜索

实现搜索功能的基本方法 在Vue中实现搜索功能通常涉及以下几个关键步骤,结合数据绑定、计算属性和方法调用来动态过滤和显示结果。 数据绑定与输入处理 使用v-model双向绑定搜索输入框的值,监听用户…

vue表格重置怎么实现

vue表格重置怎么实现

重置表格数据的方法 在Vue中重置表格数据通常需要操作绑定的数据源,以下是几种常见实现方式: 直接重置数据源 // 假设表格绑定的是tableData this.tableData = [..…

vue怎么实现数据检测

vue怎么实现数据检测

Vue 数据检测的实现方式 Vue 通过响应式系统实现数据检测,核心机制基于 Object.defineProperty(Vue 2)或 Proxy(Vue 3)。以下是具体实现方法: 基于 Vu…

vue路由实现内部切换

vue路由实现内部切换

Vue 路由实现内部切换的方法 Vue Router 是 Vue.js 官方的路由管理器,用于实现单页应用(SPA)的页面切换。以下是几种常见的内部路由切换方式: 使用 <router-lin…

vue设计与实现 书

vue设计与实现 书

vue设计与实现 书 《Vue.js设计与实现》是一本深入探讨Vue.js框架内部原理和设计思想的书籍,适合希望深入理解Vue.js的开发者。以下是关于这本书的详细信息: 书籍内容 《Vue…

vue实现走势图

vue实现走势图

Vue 实现走势图的方法 使用 ECharts 库 ECharts 是一个强大的数据可视化库,支持多种图表类型,包括走势图(折线图)。在 Vue 项目中可以通过 vue-echarts 封装库或直接使…