当前位置:首页 > 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 实现弹幕功能 弹幕功能通常包括动态生成、滚动显示、颜色和速度随机化等特性。以下是基于 Vue 3 的实现方法。 核心思路 使用 CSS 动画控制弹幕从右向左滚动。 动态生成弹幕数据,随机设置…

vue环境实现

vue环境实现

Vue 环境搭建 安装 Node.js 和 npm Node.js 是运行 Vue 的基础环境,npm 是包管理工具。从 Node.js 官网 下载并安装最新稳定版本。安装完成后,在终端运行以下命令验…

vue实现pc

vue实现pc

Vue 实现 PC 端应用开发 Vue.js 是一个流行的前端框架,适用于构建 PC 端 Web 应用。以下是关键步骤和最佳实践: 项目初始化 使用 Vue CLI 或 Vite 创建项目:…

proxy实现vue

proxy实现vue

使用 Proxy 实现 Vue 响应式系统 Vue 3 的响应式系统基于 JavaScript 的 Proxy API,通过代理对象实现对属性的拦截和依赖追踪。以下是实现的核心逻辑: 创建响应式对象…

vue实现肢体识别

vue实现肢体识别

Vue 中实现肢体识别的方法 在 Vue 项目中实现肢体识别通常需要结合第三方库或 API,例如 TensorFlow.js、MediaPipe 或 OpenCV。以下是几种常见的实现方式: 使用…

vue  实现关联属性

vue 实现关联属性

Vue 实现关联属性 在 Vue 中实现关联属性通常涉及计算属性(computed properties)或侦听器(watchers),用于根据其他属性的变化动态更新目标属性。 使用计算属性 计算属…