跳转至

02. 用户与资料

1. 验证码与平台信息(公开)

GET /api/captcha

返回示例:

{
  "code": 200,
  "message": "成功",
  "data": {
    "captcha_id": "cpt_abc",
    "image_base64": "data:image/png;base64,..."
  }
}

GET /api/platform/info

返回示例:

{
  "code": 200,
  "message": "成功",
  "data": {
    "name": "DraARL 麟链",
    "version": "v2.0.0",
    "language": "zh-CN"
  }
}

GET /api/platform/totalstats

返回示例:

{
  "code": 200,
  "message": "成功",
  "data": {
    "total_devices": 96,
    "online_devices": 22,
    "total_users": 180,
    "total_groups": 15
  }
}

2. 当前用户

GET /api/me(JWT)

功能:获取当前登录用户完整信息。

返回示例:

{
  "code": 200,
  "message": "成功",
  "data": {
    "id": 12,
    "username": "alice",
    "nickname": "Alice",
    "callsign": "BG7XXX",
    "email": "alice@example.com",
    "roles": "user",
    "isAdmin": false,
    "approval_status": 1,
    "avatar": "https://...",
    "avatar_thumb": "https://...",
    "last_group_id": 999,
    "last_login_ip": "203.0.113.9",
    "last_login_ip_location": "广东省深圳市"
  }
}

PUT /api/me(JWT)

功能:更新个人资料。

请求示例:

{
  "nickname": "Alice L",
  "phone": "13800001111",
  "address": "Shenzhen",
  "introduction": "HAM operator",
  "sex": 1,
  "birthday": "1995-08-12",
  "dmrid": 4601234,
  "mdcid": "MDC1001",
  "alarm_msg": true
}

返回:更新后的用户对象(同 GET /api/me 主要字段)。

PUT /api/me/password(JWT)

请求:

{ "old_password": "OldPass", "new_password": "NewPass123" }

返回:

{ "code": 200, "message": "密码修改成功" }

PUT /api/me/email(JWT)

请求示例:

{
  "old_session_id": "old_session",
  "old_code": "111111",
  "new_session_id": "new_session",
  "new_code": "222222"
}

返回:

{ "code": 200, "message": "邮箱修改成功", "data": { "email": "new@example.com" } }

3. 公开用户信息(登录后可查)

GET /api/users/:id/public(JWT)

GET /api/users/name/:username/public(JWT)

返回示例:

{
  "code": 200,
  "message": "成功",
  "data": {
    "id": 12,
    "username": "alice",
    "nickname": "Alice",
    "callsign": "BG7XXX",
    "avatar": "https://...",
    "avatar_thumb": "https://...",
    "address": "Shenzhen"
  }
}

4. 用户密码(管理员/本人)

PUT /api/users/:id/password(JWT)

请求:

{ "old_password": "OldPass", "new_password": "NewPass123" }

说明: - 管理员可重置他人密码(old_password 可忽略)。 - 普通用户仅可改自己密码且必须校验旧密码。

5. 管理员用户管理(Admin)

GET /api/users

参数:pagelimitkeyword

POST /api/users

请求(复用 RegisterRequest):

{
  "username": "newuser",
  "password": "InitPass123",
  "callsign": "BG7NEW",
  "nickname": "New User"
}

PUT /api/users/:id

请求:

{
  "username": "alice",
  "nickname": "Alice",
  "callsign": "BG7XXX",
  "status": 1,
  "role": "user"
}

DELETE /api/users/:id

PUT /api/users/:id/status

请求:

{ "status": 1 }

GET /api/users/:id

功能:管理员查看用户详情。