当前位置:首页 > VUE

vue 实现token登录

2026-02-19 13:55:59VUE

实现 Token 登录的基本流程

在 Vue 中实现 Token 登录通常涉及前端与后端的交互,主要包括登录请求、Token 存储、请求拦截和权限验证等步骤。

登录请求与 Token 获取

前端通过 HTTP 请求(如 Axios)向后端发送登录信息(用户名和密码),后端验证成功后返回 Token。示例代码如下:

// 登录方法示例
async login() {
  try {
    const response = await axios.post('/api/login', {
      username: this.username,
      password: this.password
    });
    const token = response.data.token;
    localStorage.setItem('auth_token', token); // 存储 Token
    this.$router.push('/dashboard'); // 跳转到主页
  } catch (error) {
    console.error('登录失败:', error);
  }
}

Token 存储与持久化

Token 通常存储在 localStoragesessionStorage 中,以实现页面刷新后的持久化。也可以使用 Vuex 管理 Token 状态。

vue 实现token登录

// 存储 Token
localStorage.setItem('auth_token', token);

// 读取 Token
const token = localStorage.getItem('auth_token');

// 清除 Token
localStorage.removeItem('auth_token');

请求拦截与 Token 验证

通过 Axios 的请求拦截器,在每次请求时自动将 Token 添加到请求头中。

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

路由守卫与权限控制

使用 Vue Router 的路由守卫(beforeEach)验证 Token,防止未登录用户访问受限页面。

vue 实现token登录

// 路由守卫示例
router.beforeEach((to, from, next) => {
  const token = localStorage.getItem('auth_token');
  if (to.meta.requiresAuth && !token) {
    next('/login'); // 跳转到登录页
  } else {
    next(); // 放行
  }
});

Token 过期处理

后端通常会设置 Token 有效期,前端可以通过响应拦截器检查 Token 是否过期,并跳转到登录页。

// Axios 响应拦截器
axios.interceptors.response.use(response => {
  return response;
}, error => {
  if (error.response.status === 401) {
    localStorage.removeItem('auth_token');
    router.push('/login'); // Token 过期或无效,跳转到登录页
  }
  return Promise.reject(error);
});

退出登录功能

清除本地存储的 Token 并跳转到登录页。

// 退出登录方法
logout() {
  localStorage.removeItem('auth_token');
  this.$router.push('/login');
}

通过以上步骤,可以实现 Vue 中的 Token 登录功能。实际开发中需根据后端接口调整请求和响应逻辑。

标签: vuetoken
分享给朋友:

相关文章

vue实现帖子

vue实现帖子

Vue 实现帖子功能 使用 Vue 实现帖子功能需要结合前端框架和后端数据交互,以下是实现的关键步骤和代码示例。 帖子列表展示 创建帖子列表组件,使用 v-for 渲染帖子数据,通过 axios 获…

vue实现图库

vue实现图库

Vue 实现图库的基本方法 使用 Vue 实现图库功能可以通过多种方式完成,以下是一些常见的方法和实现步骤。 使用 Vue 和第三方库(如 Vue Gallery) 安装 vue-gallery 或…

vue实现markdown

vue实现markdown

Vue 实现 Markdown 编辑器 在 Vue 中实现 Markdown 编辑器可以通过集成第三方库或自定义解析器完成。以下是两种常见方法: 使用第三方库(如 marked 或 markdown…

vue翻页实现

vue翻页实现

Vue翻页实现方法 基础分页组件实现 使用v-for和计算属性实现基础分页逻辑: <template> <div> <ul> <li…

vue实现ssr

vue实现ssr

Vue 实现 SSR(服务端渲染) Vue 的服务端渲染(SSR)允许在服务器端生成完整的 HTML 内容,再发送到客户端,提升首屏加载速度和 SEO 友好性。以下是实现 Vue SSR 的关键步骤和…

vue实现分栏

vue实现分栏

Vue实现分栏的常见方法 使用CSS Flexbox布局 通过Flexbox可以快速实现分栏效果,适合大多数响应式布局场景 <template> <div class="con…