当前位置:首页 > VUE

vue实现token

2026-02-10 03:20:56VUE

Vue 中实现 Token 认证的步骤

存储 Token

在用户登录成功后,将服务器返回的 Token 存储到本地。可以使用 localStoragesessionStorage 实现持久化存储。

// 登录成功后保存 Token
localStorage.setItem('token', response.data.token);

请求拦截器

在发送请求时,通过 Axios 的请求拦截器将 Token 添加到请求头中,确保每次请求都携带认证信息。

import axios from 'axios';

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

响应拦截器

通过响应拦截器处理 Token 过期或无效的情况,例如返回 401 状态码时跳转到登录页。

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

路由守卫

在 Vue Router 中配置全局前置守卫,检查用户是否已登录(是否存在 Token),未登录则跳转到登录页。

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

Token 刷新

如果 Token 具有有效期,可以在过期前通过刷新 Token 接口获取新的 Token,避免用户频繁重新登录。

function refreshToken() {
  return axios.post('/refresh-token', {
    refreshToken: localStorage.getItem('refreshToken')
  }).then(response => {
    localStorage.setItem('token', response.data.token);
    return response.data.token;
  });
}

注销处理

用户注销时清除本地存储的 Token 并跳转到登录页。

vue实现token

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

注意事项

  • Token 应通过 HTTPS 传输,避免明文暴露。
  • 敏感操作(如支付、修改密码)建议增加二次验证。
  • 避免在客户端存储过多敏感信息,Token 应仅包含必要的数据。

标签: vuetoken
分享给朋友:

相关文章

vue实现聊天

vue实现聊天

Vue实现聊天功能 基础项目结构搭建 使用Vue CLI或Vite创建项目,安装必要依赖如socket.io-client或axios(根据通信方式选择)。核心组件通常包括: ChatWindow.…

vue卖座网实现

vue卖座网实现

Vue 卖座网实现 项目结构搭建 使用 Vue CLI 快速初始化项目,安装必要依赖如 Vue Router、Vuex、Axios。 创建核心目录结构:components(通用组件)、views(页…

vue实现bootstrap

vue实现bootstrap

Vue 中集成 Bootstrap 的方法 在 Vue 项目中集成 Bootstrap 可以通过以下方式实现,涵盖样式、组件和交互功能。 安装 Bootstrap 依赖 通过 npm 或 yarn…

vue实现动画

vue实现动画

Vue 实现动画的方法 Vue 提供了多种方式来实现动画效果,包括内置的过渡系统、第三方动画库以及直接操作 CSS 或 JavaScript 动画。 使用 Vue 内置过渡系统 Vue 的 <…

vue实现树

vue实现树

Vue 实现树形结构的方法 使用递归组件实现树形结构 递归组件是Vue中实现树形结构的常见方式。通过组件调用自身,可以轻松构建多层嵌套的树形数据。 <template> <ul…

vue实现Siri

vue实现Siri

Vue 实现 Siri 风格语音交互 实现类似 Siri 的语音交互功能需要结合语音识别、语音合成和前端交互逻辑。Vue 作为前端框架,可以很好地管理这些功能的交互状态。 语音识别集成 使用 Web…