# OpenAPI 接口 - 修改密码

> 模块标识：openapi  |  接口数量：76

## 接口说明
**方法**：	POST

**路径**：				/openapi/memberships/change-password

**功能说明**：
通过混合 JWT 令牌提交手机号、旧密码、新密码及新密码确认，完成系统用户或客户端用户的密码修改。优先匹配系统用户（users），未找到时再匹配客户端用户（clientUsers）。

### 请求参数
```json
{
  "headers": [
    {
      "name": "Authorization",
      "type": "string",
      "required": true,
      "description": "修改密码令牌，格式为 Bearer TOKEN。令牌 payload 应包含：phone（手机号）、oldPassword（旧密码）、newPassword（新密码）、confirmPassword（新密码确认，须与 newPassword 一致）"
    },
    {
      "name": "X-Site",
      "type": "string",
      "required": true,
      "description": "站点标识，决定查询与更新所用的数据库上下文"
    },
    {
      "name": "X-System-Code",
      "type": "string",
      "required": true,
      "description": "系统编码。用于指定当前业务系统（例如 AUTH_MANAGEMENT、CONTENT_MANAGEMENT）"
    }
  ]
}
```

### 响应示例
```json
{
  "success": {
    "code": "0000",
    "message": "密码修改成功",
    "data": {
      "phone": "13800138000",
      "accountType": "user"
    }
  },
  "failureOldPassword": {
    "code": "1305",
    "message": "旧密码错误",
    "data": null
  },
  "failureConfirm": {
    "code": "1205",
    "message": "新密码与确认密码不一致",
    "data": null
  },
  "failurePasswordFormat": {
    "code": "1201",
    "message": "密码需包含字母和数字，且不少于6位",
    "data": null
  },
  "failure": {
    "code": "1002",
    "message": "修改密码信息不完整",
    "data": null
  }
}
```

### 注意事项
- Authorization 使用与注册/登录相同的混合 JWT 封装方式（parseMixedJWT / generateMixedJWT）。
- 新密码须同时包含字母和数字，长度不少于 6 位。
- 旧密码校验失败返回 1305；新密码与确认密码不一致返回 1205。
- 成功时响应 Header X-OpenAPI-Result 为操作结果混合 JWT。
- 账号被禁用、过期或在黑名单中时与登录接口一致返回相应错误码。

