当前位置:首页 > 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 单文件组件(SFC)方式创建页面,文件扩展名为 .vue。一个基本的 Vue 组件包含三个部分:模板(template)、脚本(script)和…

vue 组件实现

vue 组件实现

Vue 组件实现方法 单文件组件 (SFC) 使用 .vue 文件格式,包含模板、脚本和样式三部分: <template> <div class="example">{{…

vue computed实现

vue computed实现

计算属性的基本用法 在Vue中,计算属性通过computed选项定义,用于声明依赖于其他属性的动态值。计算属性基于它们的依赖进行缓存,只有依赖发生变化时才会重新计算。 new Vue({ dat…

vue实现123456

vue实现123456

Vue 实现数字 123456 的显示 在 Vue 中显示数字 123456 非常简单,可以通过以下方法实现: 方法一:直接在模板中显示 <template> <div>…

实现vue框架

实现vue框架

Vue框架的基本实现 Vue是一个渐进式JavaScript框架,用于构建用户界面。以下是实现Vue框架的基本步骤: 安装Vue 通过CDN引入Vue是最简单的方式: <script src…

vue实现答题

vue实现答题

Vue 实现答题功能 数据结构设计 使用 Vue 的响应式特性管理题目和答案数据。通常需要以下数据结构: data() { return { questions: [ {…