当前位置:首页 > 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 状态码,前端可以跳转到登录页面。

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 请求、登出以及路由保护。

vue带token实现登录

标签: vuetoken
分享给朋友:

相关文章

vue实现预约页面

vue实现预约页面

Vue 预约页面实现步骤 准备工作 安装Vue CLI创建项目,确保已配置好开发环境。使用vue create appointment-page初始化项目,选择默认配置或手动配置。 页面结构设计 在…

vue实现点击页面切换

vue实现点击页面切换

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

vue实现granfana

vue实现granfana

Vue 实现类似 Grafana 的仪表盘 要在 Vue 中实现类似 Grafana 的仪表盘功能,需要结合数据可视化库、状态管理和 UI 组件。以下是关键步骤和推荐工具: 数据可视化库 使用…

vue实现返回

vue实现返回

返回按钮功能实现 在Vue中实现返回功能通常有两种方式:使用浏览器历史记录的history.back()或结合Vue Router进行编程式导航。以下是具体实现方法: 使用浏览器API metho…

vue实现route

vue实现route

Vue 路由实现方法 Vue 中实现路由通常使用 vue-router 库,这是 Vue 官方推荐的路由管理器。以下是具体实现步骤: 安装 vue-router 通过 npm 或 yarn 安装…

vue实现动画

vue实现动画

Vue 实现动画的方法 Vue 提供了多种方式来实现动画效果,包括内置的过渡系统、第三方动画库以及直接操作 CSS 或 JavaScript 动画。 使用 Vue 内置过渡系统 Vue 的 <…