当前位置:首页 > VUE

vue实现token

2026-01-07 19:01:19VUE

Vue 中实现 Token 认证的方法

在 Vue 中实现 Token 认证通常涉及前端与后端的交互,包括 Token 的获取、存储、发送和刷新等操作。以下是具体实现步骤:

获取 Token

用户登录时,向后端发送用户名和密码,后端验证成功后返回 Token。可以使用 Axios 发送 POST 请求:

axios.post('/api/login', {
  username: 'user',
  password: 'password'
})
.then(response => {
  const token = response.data.token;
  localStorage.setItem('token', token); // 存储 Token
})
.catch(error => {
  console.error('登录失败:', error);
});

存储 Token

Token 通常存储在本地存储(localStorage)或 Vuex 中。localStorage 适合持久化存储,而 Vuex 适合全局状态管理。

vue实现token

// 存储到 localStorage
localStorage.setItem('token', token);

// 存储到 Vuex
store.commit('setToken', token);

发送 Token

在后续请求中,需要在请求头中携带 Token。可以通过 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

每次路由跳转时,检查 Token 是否存在或有效。可以通过 Vue Router 的全局前置守卫实现:

vue实现token

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

刷新 Token

Token 过期时,可以通过刷新 Token 接口获取新的 Token。在响应拦截器中处理:

axios.interceptors.response.use(response => {
  return response;
}, error => {
  if (error.response.status === 401) {
    return axios.post('/api/refresh-token', {
      refreshToken: localStorage.getItem('refreshToken')
    })
    .then(response => {
      localStorage.setItem('token', response.data.token);
      error.config.headers.Authorization = `Bearer ${response.data.token}`;
      return axios(error.config);
    });
  }
  return Promise.reject(error);
});

清除 Token

用户退出登录时,清除本地存储的 Token:

localStorage.removeItem('token');
store.commit('clearToken');
router.push('/login');

通过以上步骤,可以在 Vue 中实现完整的 Token 认证流程。

标签: vuetoken
分享给朋友:

相关文章

vue循环数组实现

vue循环数组实现

vue循环数组的实现方法 在Vue中循环数组主要通过v-for指令实现,以下是几种常见用法: 基本数组循环 使用v-for指令遍历数组,可以通过(item, index)的语法获取当前项和索引值:…

vue实现aop切面

vue实现aop切面

Vue 实现 AOP 切面编程的方法 在 Vue 中实现 AOP(面向切面编程)可以通过多种方式,以下是几种常见的实现方法: 使用 Vue 混入(Mixins) Vue 的混入机制可以用于实现横切关…

vue实现头像剪切

vue实现头像剪切

Vue 实现头像剪切的实现方法 使用 vue-cropperjs 库 vue-cropperjs 是一个基于 cropperjs 的 Vue 组件,专门用于图片裁剪。安装方式如下: npm ins…

vue实现路由导航

vue实现路由导航

路由导航的实现方式 在Vue中,路由导航主要通过Vue Router实现。Vue Router是Vue.js官方的路由管理器,用于构建单页面应用(SPA)。 基本路由配置 安装Vue Router后…

vue实现sql操作

vue实现sql操作

在Vue中实现SQL操作通常需要结合后端服务或本地数据库技术,因为前端JavaScript无法直接连接SQL数据库。以下是几种常见的实现方式: 通过API与后端交互 Vue前端通过HTTP请求(如a…

vue实现裁剪头像

vue实现裁剪头像

Vue 实现头像裁剪功能 实现头像裁剪功能通常需要结合第三方库如 cropperjs 或 vue-cropper。以下是两种常见实现方式: 使用 vue-cropper 库 安装依赖: np…