当前位置:首页 > VUE

vue如何实现登录失效

2026-02-21 22:46:42VUE

Vue 实现登录失效的常见方法

使用拦截器处理请求响应 在 axios 拦截器中检查响应状态码,如 401 表示未授权或登录失效。在响应拦截器中捕获该状态码并执行登出操作。

axios.interceptors.response.use(
  response => response,
  error => {
    if (error.response.status === 401) {
      // 清除本地存储的 token
      localStorage.removeItem('token')
      // 跳转到登录页
      router.push('/login')
    }
    return Promise.reject(error)
  }
)

结合路由守卫进行验证 在全局前置守卫中检查用户是否认证,未认证则重定向到登录页面。

vue如何实现登录失效

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

处理 token 过期 在登录时记录 token 的过期时间,定期检查是否过期。

vue如何实现登录失效

// 登录时存储过期时间
localStorage.setItem('token_expiry', Date.now() + 3600 * 1000)

// 定时检查 token 是否过期
setInterval(() => {
  const expiry = localStorage.getItem('token_expiry')
  if (expiry && Date.now() > parseInt(expiry)) {
    handleLogout()
  }
}, 60000)

实现自动登出功能 长时间无操作时自动登出,通过监听用户活动重置计时器。

let logoutTimer

function resetLogoutTimer() {
  clearTimeout(logoutTimer)
  logoutTimer = setTimeout(() => {
    handleLogout()
  }, 30 * 60 * 1000) // 30分钟无操作自动登出
}

window.addEventListener('mousemove', resetLogoutTimer)
window.addEventListener('keypress', resetLogoutTimer)

处理多标签页同步登出 使用 storage 事件监听其他标签页的登出操作。

window.addEventListener('storage', (event) => {
  if (event.key === 'token' && !event.newValue) {
    handleLogout()
  }
})

function handleLogout() {
  localStorage.removeItem('token')
  router.push('/login')
}

标签: 如何实现vue
分享给朋友:

相关文章

vue穿梭框组件实现

vue穿梭框组件实现

实现基础穿梭框组件 在Vue中实现穿梭框组件,可以使用<el-transfer>(Element UI)或手动实现。以下是手动实现的核心逻辑: <template> &l…

vue 动画 实现

vue 动画 实现

vue 动画实现方法 Vue 提供了多种方式实现动画效果,主要包括过渡动画和动态动画两类。 使用 <transition> 组件实现基础过渡 通过 Vue 内置的 <transit…

vue实现模块

vue实现模块

Vue 实现模块化的方法 Vue 支持多种模块化开发方式,可以根据项目需求选择适合的方案。 使用单文件组件(SFC) 单文件组件是 Vue 最常用的模块化方式,将模板、脚本和样式封装在一个 .vue…

vue实现影院

vue实现影院

Vue实现影院功能的基本思路 使用Vue框架开发影院功能需要结合前端组件化开发、状态管理以及后端API交互。以下是关键实现步骤: 影院页面布局设计 影院页面通常分为顶部导航栏、影院列表区域和底部导航…

vue网页实现

vue网页实现

Vue 网页实现指南 环境准备 安装 Node.js 和 npm/yarn,确保环境配置正确。使用 Vue CLI 或 Vite 创建项目框架,快速搭建开发环境。 npm install -g @v…

vue实现 页面

vue实现 页面

Vue 实现页面的核心方法 创建 Vue 项目 使用 Vue CLI 或 Vite 快速初始化项目。Vue CLI 是官方脚手架工具,适合传统项目;Vite 提供更快的现代构建体验。 npm cre…