当前位置:首页 > 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)
  }
)

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

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

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

// 登录时存储过期时间
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 ssr

实现 vue ssr

Vue SSR 实现方法 Vue SSR(Server-Side Rendering)通过服务器端渲染 Vue 应用,提升首屏加载速度和 SEO 友好性。以下是核心实现方法: 基础配置 安装必要…

vue computed 实现

vue computed 实现

computed 的基本用法 在 Vue 中,computed 用于声明计算属性,这些属性基于响应式依赖进行缓存。只有当依赖发生变化时,计算属性才会重新计算。 new Vue({ data:…

vue功能实现

vue功能实现

Vue 功能实现指南 Vue.js 是一个渐进式 JavaScript 框架,广泛用于构建用户界面。以下是 Vue 功能的常见实现方法。 数据绑定 Vue 的核心功能之一是数据绑定,通过 v-mo…

vue实现布局

vue实现布局

Vue 实现布局方法 Vue 提供了多种方式实现页面布局,可以通过组件化、CSS 框架或自定义样式完成。以下是几种常见方法: 使用 CSS Flexbox 或 Grid 通过 Vue 单文件组件结…

vue实现评分

vue实现评分

Vue 实现评分功能 使用组件库实现 安装 element-ui 或 ant-design-vue 这类 UI 库,它们已经内置了评分组件。 以 element-ui 为例: <te…

vue 实现图钉

vue 实现图钉

实现图钉效果的步骤 在Vue中实现图钉(固定位置)效果,可以通过CSS的position: sticky属性或监听滚动事件动态修改元素样式。以下是两种常见方法: 方法一:使用CSS的positi…