Skip to content

Latest commit

 

History

History
244 lines (198 loc) · 4.56 KB

File metadata and controls

244 lines (198 loc) · 4.56 KB

认证API文档

概述

认证API模块负责处理用户登录、权限验证、身份证验证等核心认证功能。

文件位置: src/api/auth.js

API接口

1. 用户登录 - login

功能: 用户登录认证

请求方式: POST

接口地址: /login

参数:

{
  username: string,    // 用户名
  password: string,    // 密码
  captcha: string,     // 验证码
  captcha_key: string  // 验证码key
}

返回数据:

{
  status: boolean,     // 请求状态
  msg: string,         // 返回消息
  data: {
    token: string,     // 访问令牌
    employeeInfo: {    // 员工信息
      id: number,
      username: string,
      realname: string,
      mobile: string,
      dpname: string,
      role_name: string,
      style: string    // 主题样式
    },
    menuList: Array,   // 菜单列表
    notice: Array      // 公告信息
  }
}

使用示例:

import { login } from '@/api/auth'

const loginData = {
  username: 'admin',
  password: '123456',
  captcha: '1234',
  captcha_key: 'abc123'
}

const result = await login(loginData)
if (result.status) {
  // 登录成功
  console.log('登录成功', result.data)
} else {
  // 登录失败
  console.error('登录失败', result.msg)
}

2. 获取验证码 - getCaptcha

功能: 获取登录验证码

请求方式: GET

接口地址: /getCaptcha

参数: 无

返回数据:

{
  status: boolean,
  data: {
    captcha_key: string,  // 验证码key
    captcha_img: string   // 验证码图片base64
  }
}

使用示例:

import { getCaptcha } from '@/api/auth'

const captchaData = await getCaptcha()
if (captchaData.status) {
  // 显示验证码
  this.captchaKey = captchaData.data.captcha_key
  this.captchaImg = captchaData.data.captcha_img
}

3. 获取初始化数据 - getInit

功能: 获取系统初始化配置数据

请求方式: GET

接口地址: /getInit

参数: 无

返回数据:

{
  status: boolean,
  data: {
    config: {
      scrollbar: boolean,    // 滚动条配置
      theme: string,         // 默认主题
      layout: string         // 默认布局
    },
    version: string,         // 系统版本
    title: string           // 系统标题
  }
}

4. 身份证验证 - checkIdCard

功能: 验证身份证号码格式

请求方式: POST

接口地址: /checkIdCard

参数:

{
  idcard: string  // 身份证号码
}

返回数据:

{
  status: boolean,
  msg: string,
  data: {
    valid: boolean,      // 是否有效
    province: string,    // 省份
    city: string,        // 城市
    birthday: string,    // 出生日期
    gender: string       // 性别
  }
}

数据结构

EmployeeInfo - 员工信息

{
  id: number,           // 员工ID
  username: string,     // 用户名
  realname: string,     // 真实姓名
  mobile: string,       // 手机号码
  dpname: string,       // 部门名称
  role_name: string,    // 角色名称
  style: string         // 主题样式偏好
}

MenuList - 菜单列表

[
  {
    id: number,         // 菜单ID
    name: string,       // 菜单名称
    url: string,        // 菜单URL
    icon: string,       // 菜单图标
    parent_id: number,  // 父菜单ID
    sort: number,       // 排序
    children: Array     // 子菜单
  }
]

错误处理

常见错误码

  • 401: 未授权,需要重新登录
  • 403: 权限不足
  • 422: 参数验证失败
  • 500: 服务器内部错误

错误处理示例

try {
  const result = await login(loginData)
  if (!result.status) {
    ElMessage.error(result.msg || '登录失败')
    return
  }
  // 处理成功逻辑
} catch (error) {
  console.error('登录请求失败:', error)
  ElMessage.error('网络请求失败,请稍后重试')
}

安全注意事项

  1. 密码加密: 密码在传输前应进行加密处理
  2. Token管理: 登录成功后的token需要安全存储
  3. 验证码: 验证码有时效性,需要及时刷新
  4. 权限验证: 每次请求都应验证用户权限

Mock数据

开发环境下使用Mock数据,配置在 src/mock/api.js 中:

// Mock登录数据
const mockLoginData = {
  status: true,
  msg: '登录成功',
  data: {
    token: 'mock_token_123456',
    employeeInfo: {
      id: 1,
      username: 'admin',
      realname: '管理员',
      // ... 其他字段
    }
  }
}

最后更新时间:2025-09-19