修改密码
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
- 调用获取sudo_token接口
- 通过密码或验证码验证获取sudo_token
2. 验证密码规则
- 前端验证新密码强度
- 确认密码一致性
- 检查密码历史记录
3. 执行修改
- 调用此接口修改密码
- 传入sudo_token进行二次验证
4. 处理结果
- 修改成功提示用户
- 错误时显示具体原因
- 自动退出其他设备登录
关键特性
安全性
- 需要sudo_token二次验证
- 密码强度自动检测
- 防止密码重复使用
- 自动退出其他设备
密码规则
- 至少8个字符,最多64个字符
- 包含大写字母、小写字母、数字、特殊字符
- 不包含用户名或邮箱地址
- 不使用连续或重复字符
注意事项
常见错误场景
- sudo_token过期:提示用户重新验证
- 旧密码错误:显示具体错误信息
- 密码强度不足:提供密码规则说明
- 网络异常:重试机制
相关接口
- 获取sudo_token - 获取临时管理权限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
- application/json
Body
sudo_token string
管理员令牌, 如果原账户没有设置密码, 并且手机号和邮箱都是空, 则不需要管理员令牌, 直接修改
new_password string
新密码
Responses
- 200
- 500
A successful response.
Response Headers
- application/json
- Schema
Schema
- any
An unexpected error response.
Response Headers
- application/json
- Schema
- Example (from schema)
Schema
error 错误信息 (string)
error_code int32
error_description 错误描述 (string)
{
"error": "string",
"error_code": 0,
"error_description": "string"
}
Loading...