跳到主要内容

个人资料

GET /cm/profile​

个人资料 · /profile

权限:CurrentMusic Bearer 登录态;房间/绑定等条件另见校验。

请求模板​

将 {id} 等占位符和字段值替换为实际数据,令牌只使用你自己的 CurrentMusic 会话。

curl --request GET 'https://music.20110208.xyz/cm/profile' \
--header 'Authorization: Bearer YOUR_CURRENTMUSIC_TOKEN'

返回结构​

以下是实现中直接返回的字段与取值表达式,不是一次真实请求的响应示例。条件分支可能返回不同结构。

HTTP 200

字段取值/生成逻辑
响应体out

实现定位:backend/cm_server.py:2881。接口参数和返回条件均来自该路由分支。

PUT /cm/profile​

个人资料 · /profile

权限:CurrentMusic Bearer 登录态;房间/绑定等条件另见校验。

请求参数​

位置字段默认/读取方式
JSON bodypublicSquare未在 get 中指定

表格列出实际代码读取的字段;get 的默认值不等于业务可省略。必填、长度和取值约束见下方校验及关联专题。

请求模板​

将 {id} 等占位符和字段值替换为实际数据,令牌只使用你自己的 CurrentMusic 会话。

curl --request PUT 'https://music.20110208.xyz/cm/profile' \
--header 'Authorization: Bearer YOUR_CURRENTMUSIC_TOKEN' \
--header 'Content-Type: application/json' \
--data '{"publicSquare": "<publicSquare>"}'

返回结构​

以下是实现中直接返回的字段与取值表达式,不是一次真实请求的响应示例。条件分支可能返回不同结构。

HTTP 200

字段取值/生成逻辑
响应体public_user(cm_db.get_user(u['id']))

实现定位:backend/cm_server.py:2887。接口参数和返回条件均来自该路由分支。

PUT /cm/profile/avatar​

个人资料 · /profile/avatar

权限:CurrentMusic Bearer 登录态;房间/绑定等条件另见校验。

请求参数​

位置字段默认/读取方式
JSON bodydata''(空值时回退)

表格列出实际代码读取的字段;get 的默认值不等于业务可省略。必填、长度和取值约束见下方校验及关联专题。

参数校验与业务错误​

HTTP服务端校验说明
400'仅支持 PNG/JPG/WebP'
400'图片需 ≤1MB'
400'头像数据无效'
400str(e)

说明中的变量表达式表示运行时值;另有统一的认证、频控和上游错误。

请求模板​

将 {id} 等占位符和字段值替换为实际数据,令牌只使用你自己的 CurrentMusic 会话。

curl --request PUT 'https://music.20110208.xyz/cm/profile/avatar' \
--header 'Authorization: Bearer YOUR_CURRENTMUSIC_TOKEN' \
--header 'Content-Type: application/json' \
--data '{"data": "<data>"}'

返回结构​

以下是实现中直接返回的字段与取值表达式,不是一次真实请求的响应示例。条件分支可能返回不同结构。

HTTP 200

字段取值/生成逻辑
avatarfname

实现定位:backend/cm_server.py:2996。接口参数和返回条件均来自该路由分支。

PUT /cm/profile/email​

绑定/换绑邮箱 {email, code}(验证码证明所有权;bind: 命名空间隔离)

权限:Bearer。

请求参数​

位置字段默认/读取方式
JSON bodycode''(空值时回退)
JSON bodyemail''(空值时回退)

表格列出实际代码读取的字段;get 的默认值不等于业务可省略。必填、长度和取值约束见下方校验及关联专题。

参数校验与业务错误​

HTTP服务端校验说明
400'请填写邮箱与验证码'
409'该邮箱已被其他账号使用'

说明中的变量表达式表示运行时值;另有统一的认证、频控和上游错误。

请求模板​

将 {id} 等占位符和字段值替换为实际数据,令牌只使用你自己的 CurrentMusic 会话。

curl --request PUT 'https://music.20110208.xyz/cm/profile/email' \
--header 'Authorization: Bearer YOUR_CURRENTMUSIC_TOKEN' \
--header 'Content-Type: application/json' \
--data '{"code": "`", "email": "<email>"}'
ˋˋˋ

### 返回结构

以下是实现中直接返回的字段与取值表达式,**不是一次真实请求的响应示例**。条件分支可能返回不同结构。

HTTP 200

\| 字段 \| 取值/生成逻辑 \|
\| --- \| --- \|
\| ˋ响应体ˋ \| <code>public_user(cm_db.get_user(u['id']))` |

实现定位:`backend/cm_server.py:2982`。接口参数和返回条件均来自该路由分支。


## POST /cm/profile/email/code

发送**绑定/换绑邮箱**验证码(新邮箱不得属于其他账号;60s 冷却 + IP 限流)

**权限**:Bearer。

### 请求参数

| 位置 | 字段 | 默认/读取方式 |
| --- | --- | --- |
| JSON body | `email` | &#x27;&#x27;(空值时回退) |

> 表格列出实际代码读取的字段;get 的默认值不等于业务可省略。必填、长度和取值约束见下方校验及关联专题。

### 参数校验与业务错误

| HTTP | 服务端校验说明 |
| --- | --- |
| 400 | &#x27;该邮箱已是当前账号的邮箱&#x27; |
| 400 | &#x27;邮箱格式不正确&#x27; |
| 409 | &#x27;该邮箱已被其他账号使用&#x27; |
| 429 | &#x27;当前网络请求验证码过于频繁,请稍后再试&#x27; |
| 429 | f&quot;发送太频繁,请 {60 - (now - row[&#x27;sent_at&#x27;])} 秒后再试&quot; |
| 500 | &#x27;邮件服务未配置,请联系管理员&#x27; |
| 502 | &#x27;邮件发送失败,请稍后重试&#x27; |

说明中的变量表达式表示运行时值;另有统一的认证、频控和上游错误。

### 请求模板

将 `{id}` 等占位符和字段值替换为实际数据,令牌只使用你自己的 CurrentMusic 会话。

```bash
curl --request POST 'https://music.20110208.xyz/cm/profile/email/code' \
--header 'Authorization: Bearer YOUR_CURRENTMUSIC_TOKEN' \
--header 'Content-Type: application/json' \
--data '{"email": "<email>"}'

返回结构​

以下是实现中直接返回的字段与取值表达式,不是一次真实请求的响应示例。条件分支可能返回不同结构。

HTTP 200

字段取值/生成逻辑
okTrue
ttl300

实现定位:backend/cm_server.py:2951。接口参数和返回条件均来自该路由分支。

PUT /cm/profile/password​

修改密码:{oldPassword,newPassword} 或 {emailCode,newPassword};邮箱验证码方式保留下线其他设备

权限:Bearer。

参数校验与业务错误​

HTTP服务端校验说明
400'原密码错误'
400'当前账号未绑定邮箱,无法使用邮箱验证码修改密码'
400'新密码长度需 6~64 位'
400'请填写原密码或邮箱验证码'

说明中的变量表达式表示运行时值;另有统一的认证、频控和上游错误。

请求模板​

将 {id} 等占位符和字段值替换为实际数据,令牌只使用你自己的 CurrentMusic 会话。

curl --request PUT 'https://music.20110208.xyz/cm/profile/password' \
--header 'Authorization: Bearer YOUR_CURRENTMUSIC_TOKEN'

返回结构​

以下是实现中直接返回的字段与取值表达式,不是一次真实请求的响应示例。条件分支可能返回不同结构。

HTTP 200

字段取值/生成逻辑
okTrue

HTTP 200

字段取值/生成逻辑
okTrue
revokedremoved

实现定位:backend/cm_server.py:2922。接口参数和返回条件均来自该路由分支。

POST /cm/profile/password/code​

向当前账号绑定邮箱发送修改密码验证码(未绑定邮箱返回 400;与找回密码共用 reset: 命名空间)

权限:Bearer。

参数校验与业务错误​

HTTP服务端校验说明
400'当前账号未绑定邮箱,请先在设置中绑定邮箱'
429f"发送太频繁,请 {60 - (now - row['sent_at'])} 秒后再试"
500'邮件服务未配置,请联系管理员'
502'邮件发送失败,请稍后重试'

说明中的变量表达式表示运行时值;另有统一的认证、频控和上游错误。

请求模板​

将 {id} 等占位符和字段值替换为实际数据,令牌只使用你自己的 CurrentMusic 会话。

curl --request POST 'https://music.20110208.xyz/cm/profile/password/code' \
--header 'Authorization: Bearer YOUR_CURRENTMUSIC_TOKEN'

返回结构​

以下是实现中直接返回的字段与取值表达式,不是一次真实请求的响应示例。条件分支可能返回不同结构。

HTTP 200

字段取值/生成逻辑
okTrue
ttl300
emailcm_passport.mask_email(email)

实现定位:backend/cm_server.py:2897。接口参数和返回条件均来自该路由分支。

GET /cm/profile/{id}​

个人资料 · /profile/{id}

权限:路由未直接调用登录检查;委托处理器可能另行校验,见说明。

请求参数​

位置字段默认/读取方式
pathid路径占位符;按业务替换

表格列出实际代码读取的字段;get 的默认值不等于业务可省略。必填、长度和取值约束见下方校验及关联专题。

参数校验与业务错误​

HTTP服务端校验说明
404'用户不存在'

说明中的变量表达式表示运行时值;另有统一的认证、频控和上游错误。

请求模板​

将 {id} 等占位符和字段值替换为实际数据,令牌只使用你自己的 CurrentMusic 会话。

curl --request GET 'https://music.20110208.xyz/cm/profile/{id}' \
--header 'Authorization: Bearer YOUR_CURRENTMUSIC_TOKEN'

返回结构​

以下是实现中直接返回的字段与取值表达式,不是一次真实请求的响应示例。条件分支可能返回不同结构。

HTTP 200

字段取值/生成逻辑
响应体out

实现定位:backend/cm_server.py:3044。接口参数和返回条件均来自该路由分支。