当前位置:首页 > 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登出功能 登出功能通常涉及清除用户会话、令牌或本地存储的数据,并重定向到登录页面。以下是几种常见的实现方式: 清除用户令牌和状态 在Vuex的store中定义一个logout mutati…

vue 实现聊天

vue 实现聊天

使用 Vue 实现聊天功能 创建 Vue 项目并安装依赖 确保已安装 Vue CLI,通过以下命令创建新项目: vue create chat-app 进入项目目录后,安装必要的依赖(如 Socke…

vue实现联动

vue实现联动

Vue 实现联动效果 联动效果通常指多个组件或表单元素之间相互影响,例如选择省份后动态加载城市列表。Vue 提供了多种方式实现联动,包括数据绑定、计算属性、侦听器等。 数据驱动联动 通过 Vue 的…

vue实现项目

vue实现项目

Vue 项目实现指南 环境准备 确保已安装 Node.js(建议版本 14+)和 npm/yarn。通过以下命令检查版本: node -v npm -v 创建 Vue 项目 使用 Vue CLI 快…

vue实现回顶部

vue实现回顶部

实现方法一:使用 window.scrollTo 在Vue组件中,可以通过调用 window.scrollTo 方法平滑滚动到页面顶部。该方法接受一个配置对象,指定滚动行为为平滑(smooth)。…

vue打包实现推送

vue打包实现推送

Vue 项目打包与自动化部署推送 打包 Vue 项目 使用以下命令生成生产环境代码,默认输出到 dist 目录: npm run build 配置自动化推送(以 GitHub Pages 为例)…