当前位置:首页 > VUE

vue实现jwt

2026-02-10 09:18:03VUE

Vue 中实现 JWT 认证的步骤

安装依赖 需要安装 jsonwebtokenaxios 用于生成/验证 Token 和发起 HTTP 请求:

npm install jsonwebtoken axios

后端生成 JWT Node.js 后端示例(如 Express)生成 Token:

const jwt = require('jsonwebtoken');
const secret = 'your-secret-key';

app.post('/login', (req, res) => {
  const user = { id: 1, username: 'example' };
  const token = jwt.sign(user, secret, { expiresIn: '1h' });
  res.json({ token });
});

前端存储 Token 登录成功后存储 Token 至 localStorage 或 Vuex:

axios.post('/login', credentials)
  .then(response => {
    localStorage.setItem('jwt_token', response.data.token);
  });

请求拦截器 通过 axios 拦截器在请求头添加 Token:

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

Token 验证 前端可通过 jwt-decode 解析 Token 判断是否过期:

import jwtDecode from 'jwt-decode';

const token = localStorage.getItem('jwt_token');
if (token) {
  const decoded = jwtDecode(token);
  const isExpired = decoded.exp < Date.now() / 1000;
  if (isExpired) localStorage.removeItem('jwt_token');
}

路由守卫 Vue Router 中配置全局前置守卫保护路由:

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

注意事项

  • 敏感操作需后端二次验证 Token 有效性
  • 避免在 Token 中存储敏感信息
  • HTTPS 环境下使用 JWT
  • 设置合理的 Token 过期时间

vue实现jwt

标签: vuejwt
分享给朋友:

相关文章

vue实现alert

vue实现alert

实现自定义 Alert 组件 在 Vue 中可以通过组件化方式实现自定义 Alert 弹窗。以下是基于 Vue 3 的实现示例: 组件代码 (Alert.vue) <template&g…

vue 实现权限

vue 实现权限

Vue 实现权限控制的方法 在 Vue 项目中实现权限控制通常涉及前端路由、组件和按钮级别的权限管理。以下是几种常见的实现方式: 路由权限控制 通过路由守卫实现权限验证,过滤用户无权访问的路由:…

vue 实现挂载

vue 实现挂载

Vue 实现挂载的基本方法 在 Vue 中,挂载是将 Vue 实例与 DOM 元素关联的过程。通过挂载,Vue 可以管理 DOM 并实现数据绑定和响应式更新。 创建 Vue 实例并挂载 const…

vue实现路由

vue实现路由

Vue 路由的实现方法 Vue 路由可以通过 Vue Router 库来实现,Vue Router 是 Vue.js 官方的路由管理器,用于构建单页面应用(SPA)。 安装 Vue Router 通…

vue实现编辑

vue实现编辑

Vue 实现编辑功能 在 Vue 中实现编辑功能通常涉及表单绑定、状态管理和事件处理。以下是一个常见的实现方法: 双向数据绑定 使用 v-model 指令实现表单元素与数据的双向绑定: <i…

vue实现groupbox

vue实现groupbox

Vue 实现 GroupBox 组件 在 Vue 中实现类似 GroupBox 的效果可以通过自定义组件完成。GroupBox 通常是一个带有标题的边框容器,用于将相关控件分组显示。 基本实现方法…