当前位置:首页 > 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 实现头像裁剪功能 实现头像裁剪功能通常需要结合第三方库如 cropperjs 或 vue-cropper。以下是两种常见实现方式: 使用 vue-cropper 库 安装依赖: npm i…

vue实现图册

vue实现图册

Vue实现图册功能 在Vue中实现图册功能通常涉及图片展示、切换、缩放等交互效果。以下是常见的实现方法和关键代码示例: 基础图册组件结构 使用Vue单文件组件构建基础结构: <templat…

vue 实现过滤

vue 实现过滤

Vue 实现过滤的方法 在 Vue 中实现过滤功能可以通过多种方式完成,包括使用计算属性、自定义过滤器、第三方库等。以下是几种常见的实现方法: 使用计算属性进行过滤 计算属性是 Vue 中最常用的过…

vue实现suspense

vue实现suspense

Vue 3 中实现 Suspense Suspense 是 Vue 3 引入的一个内置组件,用于处理异步依赖的加载状态。它允许在等待异步组件或异步数据加载时显示一个后备内容(fallback),直到异…

vue实现抖动

vue实现抖动

Vue 实现抖动效果 在 Vue 中实现抖动效果可以通过 CSS 动画或 JavaScript 动画库来实现。以下是几种常见的方法: 使用 CSS 动画 通过定义 @keyframes 动画并在 V…

vue实现mouseout

vue实现mouseout

Vue 实现 mouseout 事件的方法 在 Vue 中实现 mouseout 事件可以通过多种方式完成,以下是几种常见的方法: 使用 v-on 指令 Vue 提供了 v-on 指令(或简写为 @…