当前位置:首页 > 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 适合全局状态管理。

// 存储到 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 的全局前置守卫实现:

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 认证流程。

vue实现token

标签: vuetoken
分享给朋友:

相关文章

vue实现查询替换

vue实现查询替换

Vue 实现查询替换功能 在 Vue 中实现查询替换功能,可以通过数据绑定和字符串操作方法结合实现。以下是具体实现方式: 基础实现 <template> <div>…

vue设计与实现下载

vue设计与实现下载

vue设计与实现电子书下载 《Vue.js设计与实现》是一本深入解析Vue.js框架原理的书籍,由霍春阳(HcySunYang)撰写。以下是获取该资源的常见途径: 正版购买渠道 京东、当当、天…

vue实现字母添加排序

vue实现字母添加排序

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

vue中实现显示和隐藏

vue中实现显示和隐藏

控制显示与隐藏的方法 在Vue中实现元素的显示和隐藏可以通过多种方式完成,以下是常见的几种方法: 1. 使用v-if指令v-if根据条件动态添加或移除DOM元素,适合需要频繁切换的场景。当条件为f…

vue懒加载实现难吗

vue懒加载实现难吗

vue懒加载的实现难度 Vue懒加载的实现并不复杂,核心逻辑是通过动态导入(Dynamic Imports)和路由配置或组件异步加载完成。以下是具体实现方法: 路由懒加载实现 在Vue Rout…

vue实现生成二维码

vue实现生成二维码

使用qrcode.vue库生成二维码 安装qrcode.vue库: npm install qrcode.vue --save 在Vue组件中使用: <template> &l…