当前位置:首页 > VUE

vue 实现token 登录

2026-02-10 21:57:07VUE

Vue 实现 Token 登录

用户登录与 Token 获取

在登录页面,用户提交表单后,向后端发送登录请求。后端验证成功后返回 Token(通常为 JWT)。

axios.post('/api/login', {
  username: 'user',
  password: '123456'
}).then(response => {
  const token = response.data.token;
  localStorage.setItem('token', token);
  router.push('/dashboard');
});

Token 存储与请求拦截

将 Token 存储在 localStorage 或 Vuex 中,并在每次请求时通过 axios 拦截器自动添加到请求头。

axios.interceptors.request.use(config => {
  const token = localStorage.getItem('token');
  if (token) {
    config.headers.Authorization = `Bearer ${token}`;
  }
  return config;
}, error => {
  return Promise.reject(error);
});

路由守卫验证 Token

在 Vue Router 的全局前置守卫中检查 Token,未登录用户跳转到登录页。

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

Token 过期处理

在 axios 响应拦截器中检查 Token 是否过期,过期时跳转到登录页或自动刷新 Token。

axios.interceptors.response.use(response => {
  return response;
}, error => {
  if (error.response.status === 401) {
    localStorage.removeItem('token');
    router.push('/login');
  }
  return Promise.reject(error);
});

退出登录处理

清除本地存储的 Token 并重定向到登录页。

logout() {
  localStorage.removeItem('token');
  this.$router.push('/login');
}

vue 实现token 登录

标签: vuetoken
分享给朋友:

相关文章

vue表格实现教学

vue表格实现教学

Vue 表格实现方法 使用原生HTML表格 在Vue模板中直接使用HTML的<table>标签,结合v-for动态渲染数据: <template> <table&…

vue实现弹窗可切换

vue实现弹窗可切换

实现弹窗可切换的 Vue 方案 动态组件切换 通过 Vue 的 <component :is="currentComponent"> 动态加载不同弹窗组件,结合 v-if 控制显示状态。…

vue实现字母添加排序

vue实现字母添加排序

实现字母添加排序的方法 在Vue中实现字母添加排序功能,可以通过以下步骤完成: 创建Vue实例并定义数据 new Vue({ el: '#app', data: { lette…

vue菜单实现

vue菜单实现

Vue 菜单实现方法 使用 Element UI 的菜单组件 Element UI 提供了现成的菜单组件,适合快速实现导航菜单。安装 Element UI 后,可以直接使用 el-menu 相关组件。…

实现简易vue

实现简易vue

实现简易 Vue 的核心思路 Vue 的核心功能包括数据响应式、模板编译和虚拟 DOM。以下是一个简易实现方案,涵盖核心功能模块。 数据响应式系统 通过 Object.definePropert…

vue实现erp

vue实现erp

Vue实现ERP系统的关键步骤 技术选型与架构设计 采用Vue 3 + TypeScript构建前端,搭配Pinia状态管理,Element Plus或Ant Design Vue作为UI框架。后端可…