跳到正文
MuoCeon 文档中心
v1auth 上下文

资料

显示名、用户名与用户名可用性检查。

资料端点只服务会话:username 与 display_name 归 auth 所有;性别、生日、时区等扩展档案归 account,见 account 的 /me。两边各自维护自己的字段,不互相代写。

端点

方法路径说明提权
PATCH/v1/auth/profile修改显示名无
PUT/v1/auth/username修改用户名max_age=300
GET/v1/auth/username/available检查用户名是否可用无

PATCH /profile

参数类型必填说明
display_namestring✅展示名
{ "success": true, "username": "alice", "display_name": "Alice Chen" }

显示名不承载任何权限,改错了也能改回来,因此不要求提权。仅在值真的发生变化时写入安全记录。

PUT /username

参数类型必填说明
usernamestring✅新的登录标识
状态含义
200修改成功
409用户名已被占用
400形态不合法

只要求 max_age,不要求 AAL2

用户名是别人找到并登录这个账号的依据,因此必须证明「此刻是本人」——这正是 max_age 回答的问题。 若再叠加 AAL2,只有密码一种登录方式的用户将永远改不了用户名,那是功能缺失而不是安全加固。

GET /username/available

查询参数类型必填说明
valuestring✅待检查的用户名
{ "success": true, "available": false, "reason": "taken" }

reason 固定出现:invalid_format 表示形态不合法,taken 表示已被占用,null 表示可用。客户端据此给出不同的输入提示,而不是只弹一句「不可用」。

为什么这个端点要求登录

做成公开接口,「这个用户名能不能用」就等于「这个用户名存不存在」,用户名空间会被枚举成一张通讯录。 绑定到会话后,枚举成本被抬高到「先注册或先登录」,配合限流才真正拦得住脚本。

相关

本页目录