当前位置:首页 > 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 并重定向:

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

注意事项

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

vue jwt实现

标签: vuejwt
分享给朋友:

相关文章

vue实现冰墩墩

vue实现冰墩墩

使用 Vue 实现冰墩墩动画 通过 Vue 的动画特性和 SVG 技术,可以动态渲染冰墩墩的形象。以下是具体实现方法: 准备 SVG 素材 冰墩墩的形象通常由多个 SVG 路径组成,包括身体轮廓…

vue实现钟表

vue实现钟表

使用 Vue 实现动态钟表 以下是一个基于 Vue 3 的动态钟表实现方案,包含时分秒指针和数字时间显示。 模板部分 <template> <div class="clock…

vue实现贴图

vue实现贴图

Vue 实现贴图功能 在Vue中实现贴图功能通常涉及将图片动态添加到指定位置或元素上。以下是几种常见实现方式: 使用v-bind动态绑定图片 通过数据驱动的方式动态更换图片源: <templ…

vue 实现菜单

vue 实现菜单

Vue 实现菜单的方法 使用 Vue 实现菜单可以通过多种方式,以下是几种常见的方法: 使用 Vue Router 实现动态路由菜单 通过 Vue Router 可以动态生成菜单,根据路由配置自动…

vue实现建模

vue实现建模

Vue 实现建模的方法 在 Vue 中实现建模通常涉及数据绑定、组件化和状态管理。以下是几种常见的方法: 数据驱动建模 Vue 的核心是数据驱动视图。通过定义数据模型,Vue 会自动更新 DOM。…

vue的实现

vue的实现

Vue 的实现原理 Vue 是一个渐进式 JavaScript 框架,其核心实现主要包括响应式系统、虚拟 DOM、模板编译和组件化机制。以下是 Vue 实现的主要技术细节。 响应式系统 Vue 的响…