当前位置:首页 > VUE

vue实现登录调用接口

2026-01-20 05:51:55VUE

Vue 登录接口调用实现

安装 axios
在项目中安装 axios 用于发送 HTTP 请求:

npm install axios

创建 API 服务文件
src 目录下创建 api/auth.js 文件,封装登录接口:

import axios from 'axios';

const authApi = axios.create({
  baseURL: 'https://your-api-endpoint.com/api',
  timeout: 5000
});

export const login = (credentials) => {
  return authApi.post('/login', credentials);
};

登录组件实现
在 Vue 组件中调用接口(示例为 Login.vue):

vue实现登录调用接口

<template>
  <form @submit.prevent="handleLogin">
    <input v-model="username" placeholder="用户名"/>
    <input v-model="password" type="password" placeholder="密码"/>
    <button type="submit">登录</button>
  </form>
</template>

<script>
import { login } from '@/api/auth';

export default {
  data() {
    return {
      username: '',
      password: ''
    };
  },
  methods: {
    async handleLogin() {
      try {
        const response = await login({
          username: this.username,
          password: this.password
        });
        localStorage.setItem('token', response.data.token);
        this.$router.push('/dashboard');
      } catch (error) {
        alert('登录失败: ' + error.response?.data?.message || error.message);
      }
    }
  }
};
</script>

请求拦截器(可选)

auth.js 中添加拦截器处理请求头:

authApi.interceptors.request.use(config => {
  const token = localStorage.getItem('token');
  if (token) {
    config.headers.Authorization = `Bearer ${token}`;
  }
  return config;
});

响应拦截器(可选)

处理通用错误响应:

vue实现登录调用接口

authApi.interceptors.response.use(
  response => response,
  error => {
    if (error.response.status === 401) {
      localStorage.removeItem('token');
      window.location.reload();
    }
    return Promise.reject(error);
  }
);

环境变量配置

在项目根目录创建 .env 文件:

VUE_APP_API_BASE_URL=https://your-api-endpoint.com/api

修改 auth.js 中的 baseURL

baseURL: process.env.VUE_APP_API_BASE_URL

TypeScript 支持(可选)

为接口定义类型:

interface LoginCredentials {
  username: string;
  password: string;
}

interface LoginResponse {
  token: string;
  expiresIn: number;
}

标签: 接口vue
分享给朋友:

相关文章

vue 实现pdf

vue 实现pdf

在Vue中实现PDF功能 在Vue项目中实现PDF功能通常涉及PDF生成、预览或下载。以下是几种常见实现方式: 使用vue-pdf库预览PDF 安装依赖: npm install vue-pdf…

vue实现拍照

vue实现拍照

Vue实现拍照功能 在Vue中实现拍照功能通常需要结合浏览器的MediaDevices API和Canvas元素。以下是具体实现方法: 安装依赖(可选) 如果需要更简单的封装,可以安装vue-web…

vue拖动实现

vue拖动实现

实现 Vue 拖动功能的方法 使用 HTML5 拖放 API 在 Vue 中可以利用 HTML5 的原生拖放 API 实现拖动功能。通过 draggable 属性标记可拖动元素,结合 @dragsta…

vue实现系统

vue实现系统

Vue 实现系统的核心方法 使用 Vue.js 构建系统时,需结合其响应式特性与组件化开发模式。以下为关键实现路径: 项目初始化与工程配置 通过 Vue CLI 或 Vite 创建项目骨架,推荐选择…

vue实现多线程

vue实现多线程

Vue.js 本身是单线程框架,但可以通过以下方法实现类似多线程的效果或利用浏览器多线程能力: 使用 Web Worker Web Worker 是浏览器提供的多线程 API,适合处理 CPU 密集…

vue 实现token 登录

vue 实现token 登录

安装依赖 确保项目中已安装 axios 和 vue-router。若未安装,可通过以下命令安装: npm install axios vue-router 配置axios拦截器 在 src 目录下创…