当前位置:首页 > 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中实现单词反转功能,可以通过多种方式完成。核心思路是利用JavaScript的字符串处理方法,将输入的单词或句子拆分为数组,反转数组后再拼接成字符串。 方法一:使用计算属性 通过计…

vue实现前端分离

vue实现前端分离

Vue 实现前后端分离 前后端分离是一种架构模式,前端负责页面渲染和交互逻辑,后端提供数据接口。Vue.js 作为前端框架,非常适合实现前后端分离的开发模式。 核心实现步骤 创建 Vue 项目 使用…

vue实现多人视频

vue实现多人视频

实现多人视频通话的Vue方案 使用WebRTC技术结合Vue框架可以构建多人视频通话应用。以下是核心实现方法: 技术栈选择 Vue 2/3作为前端框架 WebRTC用于实时通信 Socket.io…

vue前端实现注册

vue前端实现注册

使用 Vue 实现用户注册功能 环境准备 确保已安装 Vue CLI 或通过 CDN 引入 Vue。若使用 Vue CLI,需安装 axios 或其他 HTTP 库用于后端通信。 注册表单组件 创建…

vue怎么实现选中删除

vue怎么实现选中删除

实现选中删除功能的方法 在Vue中实现选中删除功能通常涉及以下几个关键步骤: 数据绑定与选中状态管理 使用v-model或v-for指令绑定列表数据,结合复选框或单选按钮实现选中状态管理。例如:…

前端多线程实现vue

前端多线程实现vue

前端多线程与Vue的结合 在Vue中实现多线程通常通过Web Worker技术完成。Web Worker允许在后台线程中运行脚本,避免阻塞主线程,适合处理计算密集型任务。 使用Web Worker…