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

vue jwt实现

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

注意事项

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

标签: vuejwt
分享给朋友:

相关文章

vue实现查询替换

vue实现查询替换

Vue 实现查询替换功能 在 Vue 中实现查询替换功能,可以通过数据绑定和字符串操作方法结合实现。以下是具体实现方式: 基础实现 <template> <div>…

vue实现mui

vue实现mui

使用 Vue 实现 MUI(Material-UI)风格的界面 Vue 本身不直接提供 MUI(Material Design)组件,但可以通过集成第三方库或手动实现来达到类似效果。以下是几种常见方法…

vue实现日历

vue实现日历

Vue 实现日历的基本方法 使用 Vue 实现日历可以通过自定义组件或借助第三方库完成。以下是两种常见实现方式: 自定义日历组件 创建基于 Vue 的日历组件需要处理日期计算和渲染逻辑。核心是生成当…

vue实现横滚

vue实现横滚

Vue 实现横滚效果 横滚效果通常指水平滚动内容,常见于轮播图、横向导航栏等场景。以下是几种实现方式: 使用 CSS 和 Vue 结合 通过 CSS 的 overflow-x 和 white-spa…

vue实现追加

vue实现追加

追加数据到数组或列表 在Vue中追加数据到数组或列表,可以通过push方法或concat方法实现。以下是几种常见的实现方式: 方法一:使用push方法 this.items.push(newIte…

vue前端实现

vue前端实现

Vue 前端实现基础步骤 安装 Vue.js 和相关依赖 通过 npm 或 yarn 安装 Vue.js,建议使用 Vue CLI 快速搭建项目。运行命令 npm install -g @vue/cl…