当前位置:首页 > VUE

vue实现token

2026-02-10 03:20:56VUE

Vue 中实现 Token 认证的步骤

存储 Token

在用户登录成功后,将服务器返回的 Token 存储到本地。可以使用 localStoragesessionStorage 实现持久化存储。

// 登录成功后保存 Token
localStorage.setItem('token', response.data.token);

请求拦截器

在发送请求时,通过 Axios 的请求拦截器将 Token 添加到请求头中,确保每次请求都携带认证信息。

vue实现token

import axios from '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 过期或无效的情况,例如返回 401 状态码时跳转到登录页。

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

路由守卫

在 Vue Router 中配置全局前置守卫,检查用户是否已登录(是否存在 Token),未登录则跳转到登录页。

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,避免用户频繁重新登录。

function refreshToken() {
  return axios.post('/refresh-token', {
    refreshToken: localStorage.getItem('refreshToken')
  }).then(response => {
    localStorage.setItem('token', response.data.token);
    return response.data.token;
  });
}

注销处理

用户注销时清除本地存储的 Token 并跳转到登录页。

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

注意事项

  • Token 应通过 HTTPS 传输,避免明文暴露。
  • 敏感操作(如支付、修改密码)建议增加二次验证。
  • 避免在客户端存储过多敏感信息,Token 应仅包含必要的数据。

标签: vuetoken
分享给朋友:

相关文章

vue实现选区

vue实现选区

Vue 实现选区的基本方法 在Vue中实现选区功能通常涉及DOM操作和事件处理。以下是几种常见的方法: 使用原生JavaScript的Selection API 通过window.getSelec…

vue实现erp

vue实现erp

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

vue实现节流

vue实现节流

vue实现节流的方法 在Vue中实现节流(throttle)功能,通常用于限制高频事件的触发频率,例如滚动、输入或按钮点击。以下是几种常见的实现方式: 使用Lodash的throttle函数 安装L…

vue实现长按

vue实现长按

Vue 实现长按功能的方法 在 Vue 中实现长按功能可以通过原生事件监听或自定义指令完成。以下是几种常见实现方式: 使用原生事件监听 通过 @mousedown 和 @mouseup 或 @tou…

vue 组件实现

vue 组件实现

Vue 组件实现方法 单文件组件 (SFC) 使用 .vue 文件格式,包含模板、脚本和样式三部分: <template> <div class="example">{{…

vue实现甘特图

vue实现甘特图

使用 Vue 实现甘特图 基于开源库(如 vue-ganttastic) 安装依赖库: npm install vue-ganttastic 示例代码: <template> &l…