当前位置:首页 > 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。示例代码:

vue jwt实现

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 是否存在及有效性。

vue jwt实现

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 机制续期。

标签: vuejwt
分享给朋友:

相关文章

简易实现vue

简易实现vue

简易 Vue 实现思路 核心是数据劫持结合发布-订阅模式,通过 Object.defineProperty 或 Proxy 监听数据变化,触发视图更新。 数据劫持实现 class Observer…

vue实现预览

vue实现预览

Vue实现文件预览的方法 使用Vue实现文件预览功能可以通过多种方式完成,具体取决于文件类型(图片、PDF、视频等)。以下是几种常见文件类型的实现方案。 图片预览 通过<input type…

vue实现点击样式

vue实现点击样式

Vue 实现点击样式的方法 在 Vue 中实现点击样式可以通过多种方式完成,以下是几种常见的方法: 方法一:使用 v-bind:class 动态绑定类名 通过数据驱动的方式动态切换类名,结合…

vue实现文档导入

vue实现文档导入

Vue 实现文档导入的方法 在 Vue 中实现文档导入功能通常涉及文件上传、解析和处理。以下是几种常见的方法: 使用原生文件输入和 FileReader 通过 HTML 的原生 <input…

vue前端实现登录

vue前端实现登录

实现登录功能的基本流程 使用Vue实现登录功能需要结合前端框架和后端API交互。以下是一个典型的实现方案: 安装必要依赖 确保项目已安装axios用于HTTP请求: npm install axi…

vue实现横向导航

vue实现横向导航

vue实现横向导航的方法 使用Flex布局实现横向导航 在Vue中可以通过Flex布局快速实现横向导航。创建一个组件,使用display: flex和flex-direction: row属性使导航项…