pmc afa88c142b feat: 实现设备动态绑定方案(步骤1-5)
- 步骤1: MacAddressLoginView 增强,返回 code=4010(未绑定)/4011(不存在),支持自动激活
- 步骤2: 新增 bind_status 接口,设备端轮询查询绑定状态(无需认证)
- 步骤3: 新增 register 设备自注册接口,首次开机自动注册(无需认证)
- 步骤4: UserDeviceSerializer 增加 mac_address 字段
- 步骤5: WebSocket 新增 device_info 消息类型,支持设备状态上报和广播

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-20 15:53:33 +08:00
..
2026-03-17 13:17:02 +08:00
2026-03-17 13:17:02 +08:00
2026-03-17 13:17:02 +08:00
2026-03-17 13:17:02 +08:00
2026-03-17 13:17:02 +08:00
2026-03-17 13:17:02 +08:00
2026-03-17 13:17:02 +08:00
2026-03-17 13:17:02 +08:00
2026-03-17 13:17:02 +08:00
2026-03-17 13:17:02 +08:00

用户管理模块 (userapp)

概述

用户管理模块提供了完整的用户账号管理功能,包括:

  • 多种方式的用户注册(用户名注册)
  • 多种方式的用户登录(用户名登录、邮箱登录、手机验证码登录)
  • 用户信息管理
  • 密码重置
  • 第三方账号登录(通过 allauth 支持)

API 文档

详细的API文档请参考

  • 用户认证API文档 - 包含所有认证相关接口
  • Swagger API文档运行服务后访问 /swagger/ 路径

认证方式

系统支持两种认证方式:

  1. Token认证基于自定义的Redis存储Token用于API访问
  2. Session认证基于Django内置的session机制主要用于管理后台

目录结构

userapp/
├── models.py      # 用户模型定义
├── views.py       # API视图
├── serializers.py # 序列化器
├── urls.py        # URL路由配置  
├── utils.py       # 工具函数
└── authentication.py # 自定义认证类

登录注册流程

注册流程

  1. 用户名注册:
    • 访问 /api/user/auth/register/
    • 提供用户名、密码、确认密码
    • 可选提供邮箱和手机号

登录流程

系统支持多种登录方式:

  1. 用户名登录:

    • 访问 /api/user/auth/username/login/
    • 提供用户名和密码
    • 获取返回的令牌Token
  2. 邮箱登录:

    • 访问 /api/user/auth/email/login/
    • 提供邮箱和密码
    • 获取返回的令牌Token
  3. 手机验证码登录:

    • 先访问 /api/user/auth/phone/verify/ 获取验证码
    • 然后访问 /api/user/auth/phone/login/ 提供手机号和验证码
    • 获取返回的令牌Token

使用令牌

获取令牌后,在后续请求中添加以下请求头:

Authorization: Bearer {token}