当前位置:首页 > VUE

vue jwt实现

2026-03-27 20:26:33VUE

Vue 中实现 JWT 认证

安装依赖

需要安装 jsonwebtokenaxios 用于生成/验证令牌和发起 HTTP 请求。通过 npm 或 yarn 安装:

npm install jsonwebtoken axios

后端配置

确保后端支持 JWT 签发和验证。常见后端框架(如 Node.js + Express)需配置:

  • 登录接口返回 JWT
  • 其他接口验证 JWT 有效性 示例 Node.js 签发代码:
    const jwt = require('jsonwebtoken');
    const token = jwt.sign({ userId: user.id }, 'your_secret_key', { expiresIn: '1h' });

前端登录处理

在登录组件中,通过 axios 发送凭证并存储返回的 JWT:

axios.post('/api/login', { email, password })
  .then(response => {
    localStorage.setItem('jwt', response.data.token);
    router.push('/dashboard');
  });

请求拦截

通过 axios 拦截器自动附加 JWT 到请求头:

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

路由守卫

使用 Vue Router 的导航守卫保护受限路由:

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

令牌刷新

处理 JWT 过期时自动刷新:

vue jwt实现

axios.interceptors.response.use(
  response => response,
  error => {
    if (error.response.status === 401) {
      return axios.post('/api/refresh', { token: localStorage.getItem('jwt') })
        .then(res => {
          localStorage.setItem('jwt', res.data.token);
          error.config.headers.Authorization = `Bearer ${res.data.token}`;
          return axios.request(error.config);
        });
    }
    return Promise.reject(error);
  }
);

安全注意事项

  • 避免在客户端存储敏感信息
  • 使用 HTTPS 传输
  • 设置合理的令牌过期时间
  • 实现服务端黑名单机制

以上步骤可实现完整的 JWT 认证流程,包含登录、令牌管理、路由保护和自动刷新功能。

标签: vuejwt
分享给朋友:

相关文章

vue实现tablegrid

vue实现tablegrid

Vue 实现 TableGrid 的方法 使用 Element UI 的 Table 组件 Element UI 提供了强大的 Table 组件,可以快速实现表格布局。安装 Element UI 后,…

vue实现新闻

vue实现新闻

Vue 实现新闻功能 使用 Vue 实现新闻功能通常涉及新闻列表展示、新闻详情页、分类筛选等模块。以下是实现的基本思路和代码示例。 新闻列表展示 通过 Vue 组件展示新闻列表,通常使用 v-for…

vue实现$.extend

vue实现$.extend

Vue 实现类似 jQuery 的 $.extend 功能 在 Vue 中实现类似 jQuery 的 $.extend 功能,可以通过多种方式完成。$.extend 主要用于合并多个对象的属性,Vue…

vue实现键盘

vue实现键盘

Vue 实现键盘功能 在Vue中实现键盘功能通常涉及监听键盘事件、处理输入以及渲染虚拟键盘界面。以下是几种常见的实现方式: 监听键盘事件 通过@keydown或@keyup指令监听键盘事件,适用于需…

vue实现登录退出

vue实现登录退出

实现登录功能 在Vue中实现登录功能通常需要结合表单验证、API请求和状态管理。以下是一个基础实现示例: 安装必要依赖(如axios和vuex): npm install axios vuex 创…

vue实现组件跟随

vue实现组件跟随

实现组件跟随的常见方法 使用CSS定位 通过CSS的position: fixed或position: absolute属性实现组件跟随。需要结合JavaScript计算目标元素的位置。 &…