当前位置:首页 > VUE

vue jwt实现

2026-02-10 10:42:51VUE

Vue 中实现 JWT 认证的步骤

安装依赖

确保项目中安装 axiosvue-router。若需处理 JWT,可安装 jwt-decode 解析 token:

npm install axios vue-router jwt-decode

后端接口配置

后端需提供 JWT 签发和验证的接口,通常包括:

  • 登录接口(返回 JWT)
  • 受保护的数据接口(验证 JWT)

示例登录请求:

axios.post('/api/login', { username, password })
  .then(response => {
    const token = response.data.token;
    localStorage.setItem('jwt', token); // 存储 token
  });

前端路由守卫

vue-router 中配置全局前置守卫,验证 token 是否存在:

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

请求拦截器

通过 axios 拦截器自动为请求添加 JWT:

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

Token 过期处理

拦截响应,检测 401 错误并跳转登录页:

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

解析 JWT 数据

使用 jwt-decode 获取 token 中的用户信息:

import jwtDecode from 'jwt-decode';
const token = localStorage.getItem('jwt');
const decoded = jwtDecode(token);
console.log(decoded.userId);

注销功能

清除本地存储的 token 并重定向:

vue jwt实现

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

注意事项

  • 避免将敏感信息存储在 JWT 中。
  • 使用 HTTPS 防止 token 被截获。
  • 设置合理的 token 过期时间。
  • 考虑实现 refresh token 机制延长会话。

标签: vuejwt
分享给朋友:

相关文章

vue设计与实现下载

vue设计与实现下载

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

vue实现缩放

vue实现缩放

Vue 实现缩放的方法 在 Vue 中实现缩放功能可以通过多种方式完成,以下是一些常见的方法: 使用 CSS transform 属性 通过 CSS 的 transform: scale() 属性可…

vue实现复选

vue实现复选

Vue 实现复选框 在 Vue 中实现复选框可以通过 v-model 指令绑定数据,同时结合 input 元素的 type="checkbox" 属性来实现。以下是几种常见的实现方式: 单个复选框…

vue实现tabbar

vue实现tabbar

Vue 实现 TabBar 的方法 使用 Vue Router 实现基础 TabBar 安装 Vue Router 依赖: npm install vue-router 创建路由配置文件(route…

vue实现分站

vue实现分站

Vue 实现分站的方案 在 Vue 中实现分站功能通常涉及路由配置、环境变量管理和动态加载资源。以下是几种常见的实现方式: 基于路由的分站实现 通过 Vue Router 配置多路由,区分不同站点的…

vue菜单tab实现

vue菜单tab实现

实现Vue菜单Tab的步骤 在Vue中实现菜单Tab功能,可以通过动态组件或条件渲染来实现。以下是几种常见的方法: 使用动态组件 动态组件允许根据当前选中的Tab动态切换显示内容。定义一个组件数组…