coder-common-thin-frontend/doc/api/authentication/登录认证API.md
Leo d09a400ad0 feat(user-management): 实现用户管理导入导出功能
- 新增用户数据导出功能:
  * 支持导出当前查询条件下的数据
  * 支持导出全部用户数据
  * 支持下载用户导入模板
  * 自动生成带时间戳的文件名

- 新增用户数据导入功能:
  * 拖拽上传Excel文件支持
  * 文件类型和大小验证(.xlsx/.xls, 最大10MB)
  * 覆盖已存在数据选项
  * 实时上传进度显示
  * 详细的导入结果反馈

- 完善API接口:
  * downloadExcelTemplate: 下载Excel模板
  * exportExcelData: 导出用户数据(支持查询参数)
  * importUserData: 导入用户数据(支持覆盖选项)

- UI/UX优化:
  * 下拉菜单式导出按钮设计
  * 专业的导入模态框界面
  * 完善的错误处理和用户反馈
  * 导入说明和操作指导

技术实现:
- 使用Blob处理文件下载
- FormData处理文件上传
- Naive UI组件深度集成
- TypeScript类型安全保障
2025-07-06 00:58:26 +08:00

5.8 KiB
Raw Blame History

登录认证API

概述

登录认证模块提供用户登录、退出、注册等功能使用Sa-Token进行身份认证和会话管理。

接口列表

1. 用户登录

接口地址: POST /auth/login

接口描述: 用户使用账号密码登录系统

是否需要认证: 否

请求参数:

{
  "loginName": "admin",
  "password": "123456",
  "codeKey": "uuid-key",
  "securityCode": "1234",
  "rememberMe": false
}

请求参数说明:

参数名 类型 必填 说明 校验规则
loginName String 登录账号 长度3-16位只能包含字母和数字
password String 登录密码 不能为空
codeKey String 验证码UUID 不能为空
securityCode String 验证码 不能为空
rememberMe Boolean 记住登录 默认false

响应示例:

{
  "status": 200,
  "msg": "SUCCESS",
  "data": {
    "tokenName": "Authorization",
    "tokenValue": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..."
  },
  "traceId": "trace-123456"
}

响应参数说明:

参数名 类型 说明
tokenName String Token名称
tokenValue String Token值

错误码:

状态码 错误信息 说明
400 账号长度为 3-16 位 登录账号长度不符合要求
400 账号格式为数字以及字母 登录账号格式不正确
400 请输入登录名 登录名为空
400 请输入密码 密码为空
400 验证码已失效 验证码Key无效
400 请输入验证码 验证码为空
400 验证码错误 验证码不正确
400 用户不存在 用户账号不存在
400 密码错误 密码不正确
400 账号已被停用 用户账号被禁用
400 账号已被锁定 用户账号被锁定

调用示例:

curl -X POST \
  http://localhost:18099/auth/login \
  -H 'Content-Type: application/json' \
  -d '{
    "loginName": "admin",
    "password": "123456",
    "codeKey": "550e8400-e29b-41d4-a716-446655440000",
    "securityCode": "1234",
    "rememberMe": false
  }'

2. 用户退出

接口地址: GET /auth/logout

接口描述: 用户退出登录,清除会话信息

是否需要认证: 是

请求头:

Authorization: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...

请求参数: 无

响应示例:

{
  "status": 200,
  "msg": "SUCCESS",
  "data": "退出成功",
  "traceId": "trace-123456"
}

错误码:

状态码 错误信息 说明
401 当前会话未登录 用户未登录或Token无效

调用示例:

curl -X GET \
  http://localhost:18099/auth/logout \
  -H 'Authorization: your-token-value'

3. 用户注册

接口地址: POST /auth/register

接口描述: 新用户注册账号

是否需要认证: 否

请求参数:

{
  "loginName": "newuser",
  "password": "123456",
  "userName": "新用户",
  "codeKey": "uuid-key",
  "securityCode": "1234"
}

请求参数说明:

参数名 类型 必填 说明 校验规则
loginName String 登录账号 长度3-16位只能包含字母和数字
password String 登录密码 不能为空
userName String 用户姓名 不能为空
codeKey String 验证码UUID 不能为空
securityCode String 验证码 不能为空

响应示例:

{
  "status": 200,
  "msg": "SUCCESS",
  "data": "注册成功",
  "traceId": "trace-123456"
}

错误码:

状态码 错误信息 说明
400 账号长度为 3-16 位 登录账号长度不符合要求
400 账号格式为数字以及字母 登录账号格式不正确
400 请输入登录名 登录名为空
400 请输入密码 密码为空
400 请输入用户姓名 用户姓名为空
400 验证码已失效 验证码Key无效
400 请输入验证码 验证码为空
400 验证码错误 验证码不正确
400 账号已存在 登录账号已被注册

调用示例:

curl -X POST \
  http://localhost:18099/auth/register \
  -H 'Content-Type: application/json' \
  -d '{
    "loginName": "newuser",
    "password": "123456",
    "userName": "新用户",
    "codeKey": "550e8400-e29b-41d4-a716-446655440000",
    "securityCode": "1234"
  }'

认证流程说明

1. 登录流程

  1. 用户获取验证码(调用验证码接口)
  2. 用户输入账号、密码、验证码
  3. 系统验证验证码有效性
  4. 系统验证用户账号和密码
  5. 系统检查用户状态(是否禁用/锁定)
  6. 生成Token并返回给用户
  7. 用户后续请求携带Token

2. Token使用

  • Token需要在请求头中携带Authorization: token-value
  • Token有过期时间过期后需要重新登录
  • 系统支持多设备登录
  • 管理员可以强制用户下线

3. 权限验证

  • 登录后系统会根据用户角色加载权限
  • 每个接口都会验证用户是否有相应权限
  • 超级管理员拥有所有权限

4. 会话管理

  • 用户登录信息存储在Redis中
  • 支持会话延长
  • 支持记住登录功能
  • 系统会记录用户登录日志

安全特性

  1. 密码加密: 使用盐值加密存储密码
  2. 验证码保护: 防止暴力破解
  3. 账号锁定: 连续错误3次自动锁定
  4. IP限制: 可配置IP白名单/黑名单
  5. 会话安全: Token有效期管理
  6. 日志记录: 记录所有登录操作

注意事项

  1. 验证码有效期为5分钟
  2. Token默认有效期为30天
  3. 账号锁定时间为10分钟
  4. 注册功能可通过配置开启/关闭
  5. 建议在生产环境中启用HTTPS