当前位置:首页 > VUE

vue带token实现登录

2026-02-24 08:52:52VUE

使用 Vue 实现 Token 登录

在 Vue 中实现 Token 登录通常涉及前端与后端的交互,包括发送登录请求、存储 Token、并在后续请求中携带 Token。以下是具体实现步骤:

发送登录请求并获取 Token

通过 axios 或其他 HTTP 客户端发送登录请求,将用户名和密码传递给后端 API。成功后,后端会返回一个 Token。

import axios from 'axios';

const login = async (username, password) => {
  try {
    const response = await axios.post('/api/login', {
      username,
      password
    });
    const token = response.data.token;
    localStorage.setItem('authToken', token); // 存储 Token
    return token;
  } catch (error) {
    console.error('登录失败:', error);
    throw error;
  }
};

存储 Token

将 Token 存储在 localStoragesessionStorage 中,确保后续请求可以携带 Token。

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

在请求头中携带 Token

通过 axios 的请求拦截器,在每次请求的头部自动添加 Token。

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

检查登录状态

通过检查 localStorage 中是否存在 Token 来判断用户是否已登录。

const isAuthenticated = () => {
  return !!localStorage.getItem('authToken');
};

登出功能

清除 localStorage 中的 Token 并跳转到登录页面。

const logout = () => {
  localStorage.removeItem('authToken');
  window.location.href = '/login'; // 跳转到登录页
};

路由守卫保护页面

使用 Vue Router 的导航守卫保护需要登录才能访问的页面。

import router from './router';

router.beforeEach((to, from, next) => {
  const isAuthRequired = to.matched.some(record => record.meta.requiresAuth);
  const isAuthenticated = localStorage.getItem('authToken');

  if (isAuthRequired && !isAuthenticated) {
    next('/login');
  } else {
    next();
  }
});

后端验证 Token

后端需要在每次请求时验证 Token 的有效性。如果 Token 无效,返回 401 状态码,前端可以跳转到登录页面。

vue带token实现登录

axios.interceptors.response.use(response => {
  return response;
}, error => {
  if (error.response.status === 401) {
    localStorage.removeItem('authToken');
    window.location.href = '/login';
  }
  return Promise.reject(error);
});

通过以上步骤,可以实现 Vue 中的 Token 登录功能,包括登录、存储 Token、携带 Token 请求、登出以及路由保护。

标签: vuetoken
分享给朋友:

相关文章

vue实现下拉框删除

vue实现下拉框删除

Vue 实现下拉框删除功能 在Vue中实现下拉框的删除功能通常涉及以下步骤: 数据绑定与渲染 在Vue组件中定义数据数组用于存储下拉框选项: data() { return { op…

vue 指令实现

vue 指令实现

Vue 指令实现 Vue 指令是 Vue.js 提供的特殊属性,用于在 DOM 元素上添加特殊行为。指令以 v- 前缀开头,例如 v-model、v-if、v-for 等。以下是实现自定义指令和常用内…

vue实现详情

vue实现详情

Vue 实现详情页的常见方法 使用动态路由 在 Vue Router 中配置动态路由参数,通过 $route.params 获取详情 ID。示例路由配置: { path: '/detail/:i…

vue遮罩实现

vue遮罩实现

实现 Vue 遮罩的常见方法 使用 CSS 定位和透明度 创建一个全屏遮罩层,通过 CSS 固定定位覆盖整个视口,并设置半透明背景色。 <template> <div cl…

vue app 实现

vue app 实现

Vue App 实现步骤 创建Vue项目 使用Vue CLI或Vite初始化项目。Vue CLI适合传统项目,Vite适合现代轻量级应用。 npm create vue@latest my-vu…

vue博客实现

vue博客实现

Vue 博客实现步骤 项目初始化与基础配置 使用 Vue CLI 或 Vite 创建项目,安装基础依赖如 vue-router 和状态管理库(如 pinia)。配置路由文件实现页面跳转逻辑,例如博客首…