Files
smart-crop-ui/src/AUTH_SYSTEM_GUIDE.md

7.4 KiB
Raw Blame History

🔐 注册登录系统使用指南

系统概述

智慧农业生产管理系统已集成完整的用户认证授权功能,支持:

  • 用户注册与登录
  • 双重认证方式(密码登录 + 手机验证码登录)
  • 图形验证码防护
  • 会话管理与Token自动刷新
  • 登录日志记录时间、IP、设备信息
  • 安全退出登录
  • 权限动态分配

🚀 功能特性

1. 用户注册 📝

注册入口: 点击登录页面底部"立即注册"

必填信息:

  • 用户名3-20个字符仅字母、数字、下划线
  • 真实姓名2-20个字符
  • 手机号11位手机号
  • 短信验证码
  • 密码至少6位
  • 确认密码
  • 图形验证码

可选信息:

  • 邮箱

注册流程:

  1. 填写基本信息
  2. 点击"发送验证码"获取手机验证码
  3. 输入验证码和图形验证码
  4. 点击"立即注册"
  5. 注册成功后自动登录系统

信息校验:

  • 用户名唯一性验证
  • 手机号唯一性验证
  • 密码强度验证
  • 实时表单验证
  • 手机号格式验证

2. 用户登录 🔑

方式一:密码登录

  • 用户名 + 密码
  • 图形验证码

测试账号:

账号1admin / admin123系统管理员
账号2zhangsan / zhang123普通用户

方式二:手机号登录

  • 手机号 + 短信验证码
  • 图形验证码

测试手机号:

手机113800138000admin
手机213800138001zhangsan
测试验证码123456

3. 安全机制 🛡️

图形验证码

  • 随机4位字符
  • 点击图片或刷新按钮可更换
  • 防止暴力破解

会话管理

  • Token有效期24小时
  • 自动刷新机制
  • 过期后自动登出

登录日志

系统自动记录:

  • 登录时间
  • 登录IP地址
  • 设备信息(设备类型、浏览器、操作系统)
  • 登录方式(密码/手机号)
  • 登录状态(成功/失败)

数据加密

  • Token加密存储
  • 密码加密传输(实际部署时)
  • LocalStorage安全存储

4. 用户权限 👥

角色类型

系统管理员admin:

  • 权限:*(全部权限)
  • 可访问所有功能模块
  • 可管理用户和系统配置

部门经理manager:

  • 权限:machinery:*, field:*, operation:*
  • 可访问农机、地块、农事模块
  • 受限访问其他模块

普通用户user:

  • 权限:machinery:view, field:view, operation:view
  • 仅查看权限
  • 无法修改和删除

5. 退出登录 🚪

退出方式:

  1. 点击右上角用户头像
  2. 选择"退出登录"
  3. 系统清除所有会话信息

清除内容:

  • Token
  • RefreshToken
  • 用户信息
  • 登录时间
  • Session ID

📊 系统架构

认证流程

┌─────────┐
│ 用户访问 │
└────┬────┘
     │
     ▼
┌─────────────┐    未登录    ┌──────────┐
│ 检查登录状态 │──────────────>│ 登录页面 │
└─────────────┘              └────┬─────┘
     │                            │
  已登录                      登录成功
     │                            │
     ▼                            ▼
┌─────────────┐              ┌──────────┐
│ 检查Token   │<─────────────│ 生成Token│
└─────┬───────┘              └──────────┘
      │
   有效/刷新
      │
      ▼
┌─────────────┐
│ 进入主系统  │
└─────────────┘

技术组件

1. AuthContext (认证上下文)

  • 全局状态管理
  • 用户信息存储
  • Token管理
  • 登录/登出方法

2. Login组件

  • 双重登录方式
  • 图形验证码
  • 表单验证
  • 错误提示

3. Register组件

  • 用户注册表单
  • 实时验证
  • 手机验证码
  • 自动登录

4. CaptchaInput组件

  • 图形验证码生成
  • Canvas绘制
  • 随机刷新

5. authStorage (存储管理)

  • Mock用户数据库
  • 密码验证
  • 手机号验证
  • Token生成
  • 登录记录

🎯 使用示例

场景1新用户注册

// 用户填写注册表单
{
  username: 'lisi',
  realName: '李四',
  phone: '13900139000',
  code: '123456',        // 手机验证码
  password: 'lisi123',
  confirmPassword: 'lisi123',
  email: 'lisi@example.com',
  captcha: 'AB12'        // 图形验证码
}

// 系统验证
1. 检查用户名是否已存在 
2. 检查手机号是否已注册 
3. 验证手机验证码 
4. 验证密码强度 
5. 创建用户账号 
6. 自动登录系统 

场景2密码登录

// 用户输入
{
  username: 'admin',
  password: 'admin123',
  captcha: 'XY56'
}

// 系统处理
1. 验证图形验证码 
2. 查找用户 
3. 验证密码 
4. 生成Token 
5. 记录登录日志 
6. 更新最后登录信息 
7. 进入系统 

场景3手机号登录

// 用户输入
{
  phone: '13800138000',
  code: '123456',
  captcha: 'MN89'
}

// 系统处理
1. 验证手机号格式 
2. 验证图形验证码 
3. 验证短信验证码 
4. 查找用户 
5. 生成Token 
6. 记录登录日志 
7. 进入系统 

🔒 安全最佳实践

开发环境(当前)

  • Mock数据库
  • LocalStorage存储
  • 测试验证码固定为123456
  • 密码明文存储(仅测试)

生产环境(建议)

  • 🔐 使用真实数据库
  • 🔐 密码bcrypt加密
  • 🔐 HTTPS加密传输
  • 🔐 真实短信服务
  • 🔐 HttpOnly Cookie存储Token
  • 🔐 CSRF防护
  • 🔐 验证码有效期管理
  • 🔐 登录失败次数限制
  • 🔐 IP黑名单机制

📱 界面展示

登录页面

  • 🎨 绿色农业主题
  • 🎨 渐变背景
  • 🎨 双Tab切换密码/手机号)
  • 🎨 图形验证码
  • 🎨 安全提示

注册页面

  • 📝 完整表单验证
  • 📝 实时错误提示
  • 📝 密码强度提示
  • 📝 注册说明

用户菜单

  • 👤 用户头像
  • 👤 基本信息展示
  • 👤 个人中心入口
  • 👤 退出登录

🎉 快速开始

1. 测试登录

访问系统 → 使用测试账号登录 → 进入主系统

2. 测试注册

访问系统 → 点击"立即注册" → 填写信息 → 获取验证码 → 注册成功

3. 测试登出

进入系统 → 点击右上角用户名 → 选择"退出登录"

🆘 常见问题

Q: 忘记密码怎么办? A: 当前版本暂不支持密码找回,请联系管理员重置。

Q: 验证码收不到? A: 测试环境使用固定验证码123456

Q: 为什么会自动退出? A: Token有效期为24小时过期后会自动退出。

Q: 可以同时登录多个设备吗? A: 可以,每个设备独立维护会话。

Q: 如何查看登录记录? A: 管理员可在"中心配置管理 → 日志管理 → 登录日志"查看。


📞 技术支持


系统版本: v1.0.0
更新日期: 2024-10-15
文档作者: 智慧农业开发团队