当前位置:首页 > VUE

vue jwt实现

2026-01-07 23:45:03VUE

Vue JWT 实现方法

安装依赖

确保项目中安装了 jsonwebtoken(后端)和 axios(前端)。若使用 Vue 3,可搭配 vue-routerpinia(或 vuex)管理状态。

npm install jsonwebtoken axios

后端生成 JWT

在后端(如 Node.js)使用 jsonwebtoken 生成 Token。示例代码:

const jwt = require('jsonwebtoken');
const secret = 'your_secret_key';

function generateToken(user) {
  return jwt.sign({ id: user.id, username: user.username }, secret, { expiresIn: '1h' });
}

前端存储 Token

登录成功后,将后端返回的 Token 存储到 localStoragesessionStorage,并通过 axios 拦截器附加到请求头。

// 存储 Token
localStorage.setItem('jwtToken', token);

// axios 拦截器配置
axios.interceptors.request.use(config => {
  const token = localStorage.getItem('jwtToken');
  if (token) {
    config.headers.Authorization = `Bearer ${token}`;
  }
  return config;
});

路由守卫验证

在 Vue Router 中配置全局前置守卫,验证 Token 是否存在及有效性。

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

Token 过期处理

通过拦截响应检查 Token 是否过期,若过期则跳转到登录页。

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

注销清除 Token

用户注销时清除存储的 Token。

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

注意事项

  • 密钥安全:后端应妥善保管 JWT 密钥,避免泄露。
  • HTTPS:生产环境务必使用 HTTPS 传输 Token。
  • 短有效期:建议设置较短的 Token 有效期(如 1 小时),并通过 Refresh Token 机制续期。

vue jwt实现

标签: vuejwt
分享给朋友:

相关文章

vue实现搜索

vue实现搜索

Vue 实现搜索功能 在 Vue 中实现搜索功能通常涉及数据绑定、事件监听和过滤逻辑。以下是几种常见的实现方式: 使用计算属性过滤列表 <template> <div>…

vue实现anchor

vue实现anchor

Vue 实现 Anchor(锚点)功能 在 Vue 中实现锚点功能可以通过多种方式完成,以下是几种常见的方法: 使用 HTML 原生锚点 HTML 原生锚点是最简单的方式,通过 <a>…

vue实现前端分离

vue实现前端分离

Vue 实现前后端分离 前后端分离是一种架构模式,前端负责页面渲染和交互逻辑,后端提供数据接口。Vue.js 作为前端框架,非常适合实现前后端分离的开发模式。 核心实现步骤 创建 Vue 项目 使用…

vue前端实现注册

vue前端实现注册

使用 Vue 实现用户注册功能 环境准备 确保已安装 Vue CLI 或通过 CDN 引入 Vue。若使用 Vue CLI,需安装 axios 或其他 HTTP 库用于后端通信。 注册表单组件 创…

vue实现裁剪头像

vue实现裁剪头像

Vue 实现头像裁剪功能 实现头像裁剪功能通常需要结合第三方库如 cropperjs 或 vue-cropper。以下是两种常见实现方式: 使用 vue-cropper 库 安装依赖: n…

vue弹幕实现不重叠

vue弹幕实现不重叠

实现 Vue 弹幕不重叠的方法 CSS 定位与动画控制 通过绝对定位和动态计算弹幕轨道高度,确保弹幕在不同轨道上运行。每条弹幕占据固定高度的轨道,避免重叠。 // 弹幕轨道高度计算 const tr…