当前位置:首页 > VUE

vue如何实现token登录

2026-01-22 08:05:37VUE

Vue 中实现 Token 登录的步骤

用户登录与 Token 获取

用户通过表单提交登录信息(如用户名和密码),发送请求到后端 API。后端验证成功后返回 Token(通常为 JWT)。

// 示例:登录请求
axios.post('/api/login', {
  username: 'user',
  password: 'password'
}).then(response => {
  const token = response.data.token;
  localStorage.setItem('auth_token', token); // 存储 Token
  axios.defaults.headers.common['Authorization'] = `Bearer ${token}`; // 设置请求头
});

Token 存储与请求头设置

将 Token 存储在本地(如 localStorageVuex),并在每次请求时通过 axios 拦截器自动添加到请求头。

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

路由守卫验证登录状态

通过 Vue Router 的全局前置守卫(beforeEach)检查用户是否已登录。未登录用户跳转到登录页。

// 路由守卫示例
router.beforeEach((to, from, next) => {
  const isAuthenticated = localStorage.getItem('auth_token');
  if (to.meta.requiresAuth && !isAuthenticated) {
    next('/login');
  } else {
    next();
  }
});

Token 过期与刷新

如果 Token 过期,可以通过刷新 Token 机制(如使用 Refresh Token)重新获取有效 Token,或在过期时强制用户重新登录。

// 响应拦截器处理 Token 过期
axios.interceptors.response.use(
  response => response,
  error => {
    if (error.response.status === 401) {
      localStorage.removeItem('auth_token');
      router.push('/login');
    }
    return Promise.reject(error);
  }
);

退出登录处理

用户退出时清除本地存储的 Token 并重置全局状态。

vue如何实现token登录

// 退出登录逻辑
function logout() {
  localStorage.removeItem('auth_token');
  delete axios.defaults.headers.common['Authorization'];
  router.push('/login');
}

通过以上步骤,可以实现基于 Token 的登录认证机制,确保用户访问权限和安全性。

标签: 如何实现vue
分享给朋友:

相关文章

vue登录业务的实现

vue登录业务的实现

实现登录业务的基本流程 在Vue中实现登录业务通常涉及前端界面设计、表单验证、API请求交互、状态管理以及路由控制等环节。以下是核心实现步骤: 登录表单设计与验证 创建包含用户名和密码输入框的登录组…

vue实现用户信息删除

vue实现用户信息删除

Vue 实现用户信息删除功能 在 Vue 中实现用户信息删除功能通常涉及前端界面交互和后端 API 调用。以下是实现步骤: 前端界面设计 创建删除按钮或操作项,通常使用 @click 事件触发删除操…

vue实现通知

vue实现通知

Vue 实现通知功能的方法 使用 Vue 实现通知功能可以通过多种方式实现,以下是一些常见的方法: 使用 Vue 的全局事件总线 在 Vue 中可以通过事件总线实现通知功能。创建一个全局事件总线,然…

vue 实现过滤

vue 实现过滤

Vue 实现过滤的方法 在 Vue 中实现过滤功能可以通过多种方式完成,包括使用计算属性、自定义过滤器、第三方库等。以下是几种常见的实现方法: 使用计算属性进行过滤 计算属性是 Vue 中最常用的过…

vue实现groupbox

vue实现groupbox

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

vue实现hovuer

vue实现hovuer

Vue 实现 Hover 效果 在 Vue 中实现 hover 效果可以通过多种方式完成,以下是几种常见的方法: 使用 CSS 直接控制 通过 :hover 伪类实现,无需额外的 JavaScrip…