当前位置:首页 > VUE

vue.js实现token

2026-01-22 14:26:05VUE

Vue.js 实现 Token 认证

在 Vue.js 中实现 Token 认证通常涉及以下几个关键步骤:

存储 Token

使用 localStoragesessionStorage 存储 Token,确保在页面刷新后仍能保持登录状态。

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

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

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

发送 Token 到后端

在每次请求中,通过 axios 拦截器将 Token 添加到请求头。

import axios from '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);
});

处理 Token 过期

在后端返回 401 状态码时,跳转到登录页面或刷新 Token。

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

路由守卫

使用 Vue Router 的导航守卫保护需要认证的路由。

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

登录和登出

在登录成功后存储 Token,登出时清除 Token。

methods: {
  login() {
    axios.post('/api/login', this.credentials)
      .then(response => {
        localStorage.setItem('auth_token', response.data.token);
        this.$router.push('/dashboard');
      });
  },
  logout() {
    localStorage.removeItem('auth_token');
    this.$router.push('/login');
  }
}

刷新 Token

在 Token 快过期时,使用 refresh token 获取新的 Token。

axios.post('/api/refresh', { refreshToken: 'your_refresh_token' })
  .then(response => {
    localStorage.setItem('auth_token', response.data.token);
  });

通过以上方法,可以在 Vue.js 应用中实现完整的 Token 认证流程。

vue.js实现token

标签: vuejs
分享给朋友:

相关文章

vue如何实现注册

vue如何实现注册

实现用户注册功能 在Vue中实现注册功能通常需要结合前端表单和后端API交互。以下是完整的实现方案: 创建注册表单组件 注册表单需要包含用户名、邮箱、密码等基本字段,并进行表单验证: <te…

vue实现点击页面切换

vue实现点击页面切换

实现点击页面切换功能 在Vue中实现点击页面切换功能,可以通过路由跳转或组件动态渲染两种方式完成。以下是具体实现方法: 使用Vue Router实现页面跳转 安装Vue Router后,在项目中配置…

vue实现上移下移插件

vue实现上移下移插件

实现上移下移功能的 Vue 插件 在 Vue 中实现列表项的上移和下移功能,可以通过自定义指令或组件封装的方式完成。以下是两种常见实现方式: 基于数组操作的通用方法 通过操作数组索引实现元素位置交换…

vue实现分屏

vue实现分屏

Vue 实现分屏的方法 分屏功能通常用于展示多个独立内容区域,以下是几种常见的实现方式: 使用 CSS Grid 布局 通过 CSS Grid 可以轻松创建分屏布局,在 Vue 组件中直接应用样式:…

jq 实现 vue

jq 实现 vue

jq 实现 Vue 的核心功能 jq 是一个轻量级的 JavaScript 库,主要用于 DOM 操作和事件处理。虽然它不能完全替代 Vue,但可以通过一些技巧模拟 Vue 的核心功能,如数据绑定、事…

vue实现过程

vue实现过程

Vue 的实现过程 Vue 的实现过程可以分为多个核心模块,包括响应式系统、虚拟 DOM、模板编译等。以下是 Vue 的主要实现过程分析。 响应式系统 Vue 的响应式系统基于 Object.de…