跳到主要内容

修改密码

PATCH 

/auth/v1/user/password

接口说明

修改当前用户的密码,需要先获取一个临时管理权限的sudo_token才能执行。该操作用于用户修改自己的登录密码,需要二次验证确保安全性。

功能特性

  • 修改当前用户的登录密码
  • 需要sudo_token进行二次验证
  • 支持密码强度验证
  • 修改后旧密码立即失效
  • 自动退出其他设备登录

入参要求

必需参数

  • Authorization: 当前登录用户的access_token(必填,Bearer格式)
  • sudo_token: 临时管理权限的token(必填,通过sudo接口获取)
  • client_id: 应用对应的客户端id(可选,默认为环境id)
  • x-device-id: 设备id(可选,当前登录设备的id)

请求体参数

  • old_password: 旧密码(可选,如果用户有密码)
  • new_password: 新密码(必填,8-64位,包含大小写字母、数字、特殊字符)
  • confirm_password: 确认密码(可选,用于前端验证)

前置条件

  • 用户必须已登录并持有有效的access_token
  • 必须通过sudo接口获取有效的sudo_token
  • sudo_token必须在有效期内(15分钟)
  • 新密码必须符合密码强度要求
  • 如果用户已有密码,需要提供旧密码验证

出参说明

成功响应

  • 返回空对象,表示密码修改成功

请求示例

修改密码请求示例(有旧密码)

PATCH /auth/v1/user/password?sudo_token=eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJodHRwczovL2FwaS5leGFtcGxlLmNvbSIsInN1YiI6Ijk4NzY1NDMyMTAxMjM0NTY3ODkiLCJhdWQiOiJkZW1vLWFwcC0yZjhhOWMzZTFiNGQiLCJleHAiOjE3MzQ2NzU4ODksImlhdCI6MTczNDY2ODY4OSwic2NvcGUiOiJ1c2VyIn0.dGhpc19pc19hX2Zha2Vfc2lnbmF0dXJlX2Zvcl9leGFtcGxlX3B1cnBvc2VzX29ubHlfZG9fbm90X3VzZV9pbl9wcm9kdWN0aW9uX2Vudmlyb25tZW50X3RoaXNfaXNfbm90X3JlYWxfdG9rZW5fZGF0YQ
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJodHRwczovL2FwaS5leGFtcGxlLmNvbSIsInN1YiI6Ijk4NzY1NDMyMTAxMjM0NTY3ODkiLCJhdWQiOiJkZW1vLWFwcC0yZjhhOWMzZTFiNGQiLCJleHAiOjE3MzQ2NzU4ODksImlhdCI6MTczNDY2ODY4OSwic2NvcGUiOiJ1c2VyIn0.dGhpc19pc19hX2Zha2Vfc2lnbmF0dXJlX2Zvcl9leGFtcGxlX3B1cnBvc2VzX29ubHlfZG9fbm90X3VzZV9pbl9wcm9kdWN0aW9uX2Vudmlyb25tZW50X3RoaXNfaXNfbm90X3JlYWxfdG9rZW5fZGF0YQ
Content-Type: application/json

{
"old_password": "OldDemo123!@#",
"new_password": "NewDemo456$%^",
"confirm_password": "NewDemo456$%^"
}

修改密码请求示例(无旧密码,首次设置)

PATCH /auth/v1/user/password?sudo_token=eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJodHRwczovL2FwaS5leGFtcGxlLmNvbSIsInN1YiI6Ijk4NzY1NDMyMTAxMjM0NTY3ODkiLCJhdWQiOiJkZW1vLWFwcC0yZjhhOWMzZTFiNGQiLCJleHAiOjE3MzQ2NzU4ODksImlhdCI6MTczNDY2ODY4OSwic2NvcGUiOiJ1c2VyIn0.dGhpc19pc19hX2Zha2Vfc2lnbmF0dXJlX2Zvcl9leGFtcGxlX3B1cnBvc2VzX29ubHlfZG9fbm90X3VzZV9pbl9wcm9kdWN0aW9uX2Vudmlyb25tZW50X3RoaXNfaXNfbm90X3JlYWxfdG9rZW5fZGF0YQ
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJodHRwczovL2FwaS5leGFtcGxlLmNvbSIsInN1YiI6Ijk4NzY1NDMyMTAxMjM0NTY3ODkiLCJhdWQiOiJkZW1vLWFwcC0yZjhhOWMzZTFiNGQiLCJleHAiOjE3MzQ2NzU4ODksImlhdCI6MTczNDY2ODY4OSwic2NvcGUiOiJ1c2VyIn0.dGhpc19pc19hX2Zha2Vfc2lnbmF0dXJlX2Zvcl9leGFtcGxlX3B1cnBvc2VzX29ubHlfZG9fbm90X3VzZV9pbl9wcm9kdWN0aW9uX2Vudmlyb25tZW50X3RoaXNfaXNfbm90X3JlYWxfdG9rZW5fZGF0YQ
Content-Type: application/json

{
"new_password": "FirstDemo789&*(",
"confirm_password": "FirstDemo789&*("
}

响应示例

修改成功响应

{}

旧密码错误响应

{
"error": "invalid_password",
"error_code": 4003,
"error_description": "旧密码错误,请重新输入"
}

密码强度不足响应

{
"error": "weak_password",
"error_code": 4005,
"error_description": "密码强度不足,请使用包含大小写字母、数字和特殊字符的组合"
}

使用流程

1. 获取sudo_token

2. 验证密码规则

  • 前端验证新密码强度
  • 确认密码一致性
  • 检查密码历史记录

3. 执行修改

  • 调用此接口修改密码
  • 传入sudo_token进行二次验证

4. 处理结果

  • 修改成功提示用户
  • 错误时显示具体原因
  • 自动退出其他设备登录

关键特性

安全性

  • 需要sudo_token二次验证
  • 密码强度自动检测
  • 防止密码重复使用
  • 自动退出其他设备

密码规则

  • 至少8个字符,最多64个字符
  • 包含大写字母、小写字母、数字、特殊字符
  • 不包含用户名或邮箱地址
  • 不使用连续或重复字符

注意事项

常见错误场景

  • sudo_token过期:提示用户重新验证
  • 旧密码错误:显示具体错误信息
  • 密码强度不足:提供密码规则说明
  • 网络异常:重试机制

相关接口

Request

Query Parameters

    client_id string

    应用对应的客户端id,可从云开发平台-->身份认证-->开发设置获取。默认为环境id,可以不传

Header Parameters

    x-device-id string

    设备id,当前登录设备的id。客户端应随机生成,并缓存到客户端。此参数与登录账号数有关

    Authorization stringrequired

    当前登录用户的access_token, 值的格式为Bearer xxx

    Example: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJodHRwczovL2FwaS5leGFtcGxlLmNvbSIsInN1YiI6Ijk4NzY1NDMyMTAxMjM0NTY3ODkiLCJhdWQiOiJkZW1vLWFwcC0yZjhhOWMzZTFiNGQiLCJleHAiOjE3MzQ2NzU4ODksImlhdCI6MTczNDY2ODY4OSwic2NvcGUiOiJ1c2VyIn0.dGhpc19pc19hX2Zha2Vfc2lnbmF0dXJlX2Zvcl9leGFtcGxlX3B1cnBvc2VzX29ubHlfZG9fbm90X3VzZV9pbl9wcm9kdWN0aW9uX2Vudmlyb25tZW50X3RoaXNfaXNfbm90X3JlYWxfdG9rZW5fZGF0YQ

Body

    sudo_token string

    管理员令牌, 如果原账户没有设置密码, 并且手机号和邮箱都是空, 则不需要管理员令牌, 直接修改

    new_password string

    新密码

Responses

A successful response.

Response Headers
    Schema
      any
    Loading...