当前位置:首页 > 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 实现访问量统计的方法 使用前端计数 在 Vue 中可以通过简单的计数器实现页面访问量的统计。这种方法适合小型项目或演示用途。 // 在 Vue 组件中 data() { return…

vue前端实现打印功能

vue前端实现打印功能

使用Vue实现前端打印功能 在Vue项目中实现打印功能可以通过多种方式完成,以下是几种常见的方法: 使用window.print()方法 这是最简单的打印方式,直接调用浏览器的打印功能。 meth…

vue实现列表显示

vue实现列表显示

Vue 实现列表显示的方法 在 Vue 中实现列表显示通常使用 v-for 指令,结合数组或对象数据渲染动态列表。以下是几种常见的实现方式。 基本列表渲染 通过 v-for 指令遍历数组,动态生成…

vue无限菜单怎么实现

vue无限菜单怎么实现

实现 Vue 无限菜单的方法 递归组件实现嵌套菜单 使用 Vue 的递归组件特性可以轻松实现无限级嵌套菜单。通过组件调用自身的方式处理嵌套数据。 <template> <ul…

vue实现字母添加排序

vue实现字母添加排序

实现字母添加排序的方法 在Vue中实现字母添加排序功能,可以通过以下步骤完成: 创建Vue实例并定义数据 new Vue({ el: '#app', data: { lette…

vue实现发表

vue实现发表

Vue 实现发表功能 在 Vue 中实现发表功能通常涉及表单处理、数据绑定和网络请求。以下是实现步骤和代码示例: 表单设计与数据绑定 创建一个表单用于输入发表内容,使用 v-model 进行数据双向…