✓我们存储什么
- 账号:邮箱、口令的
argon2id哈希(明文口令不落库、不出现在任何日志与响应中)。 - 权益:
plan(free/pro)与 Pro 到期时间,判定写在服务端签发的 JWT claims 中,客户端不内置授权壳。 - 同步内容:歌单名称与曲目文本、收藏列表、播放历史、搜索历史、皮肤包偏好——均为文本,不含音频、不含封面二进制。
- 会话:刷新令牌的
jti、家族 ID、平台标签(android / pc,由客户端自行声明)、最近活动时间、过期时间。 - 交易:订单号、SKU、金额、状态、激活码及其签发/绑定/吊销记录(对账与退款处置需要)。
- 运营聚合:注册数、今日同步事务数、快照份数等纯数字,见公开
/metrics。
✕我们不存储、不采集什么
- 音频文件、音频片段、歌词文件或任何受版权保护的内容本体。
- 设备硬件标识:IMEI、Android ID、MAC 地址、序列号、硬件指纹哈希——服务端数据模型里没有这些字段,即不采集设备硬件指纹。
- 地理位置、通讯录、短信、通话记录、相册。
- 本地曲库的文件路径与元数据(本地扫描结果只留在你设备上,除非你主动把歌单文本同步上来)。
- 音源接口、插件源列表或第三方内容聚合信息:我们不内置、不下发、不代收,也不提供任何曲库检索服务。
- 行为画像、广告标识、第三方分析或埋点 SDK。
◇保留期与自动裁剪
| 数据 | 保留期 | 说明 |
|---|---|---|
| 访问令牌 access | 15 分钟 | 短时有效,不入库 |
| 刷新会话 refresh | 30 天 | 旋转签发;重用检测会吊销整族 |
| 同步正文 sync_blobs | 账号存续期 | gzip 后存单机 SQLite,仅你本人可读 |
| 回收站快照 snapshots | 30 天 自动裁剪 | 用于回滚误同步,随清理任务过期删除 |
| 分块上传分片 | 24 小时 TTL | 未完成的中断分片定时回收 |
| 邮件验证码 | 15 分钟,单次使用 | 只存哈希,用过即废 |
| 订单 / 激活码 | 长期 | 财务对账凭据;注销时脱去与账号的关联 |
□第三方与传输
- 邮件:仅注册/找回密码时经 SMTP 发送验证码,不包含你的歌单内容。
- 支付:使用第三方聚合支付通道时,只传递订单号与金额;卡号、身份证等敏感信息由通道方按其合规要求处理,我们不接触。
- Pro 也可走「客服手动发码」:无需任何支付通道即可完成。
- 全站 API 经 HTTPS/TLS 1.2+ 提供,强制 HSTS;请求体上限 8MB,登录与注册端点独立限流。
⛨管理端凭据
- 控制台使用管理员账号与口令登录,口令以
argon2id哈希存于服务端admins表;环境变量只用于首次启动的种子,可从不写入仓库。 - 未知用户名与错误口令返回同一错因并对齐校验耗时,防止账号枚举;连错 5 次锁定 15 分钟。
- 管理会话是与用户令牌相互独立的服务端签名会话(8 小时),可选 TOTP 二次验证;会话携带账号与版本号, 管理员退出登录或改密即作废该账号此前签发的全部会话,被盗用或遗留在公用机器上的会话无法继续使用。
- 管理页面与接口响应均不回显口令;口令不进入日志,也不写入审计表。
- 控制台的每一次写操作与登录成功/失败都记入操作审计(账号、时间、动作、对象 id、结果数值、来源 IP), 留存不少于 180 天以履行法定日志义务;审计不记录口令、会话、激活码明文,也不记录你的歌单内容正文。
◇你对数据的控制
- 导出:客户端随时调用
POST /v1/sync (action=download)取回自己的全部同步数据原文。 - 撤销分享:删除歌单或请管理员撤销 token,落地页立即 410。
- 下线设备:
GET /v1/devices查看在用会话,DELETE /v1/devices/:jti解绑;管理员也可吊销全部会话。 - 注销账号:通过
/v1/config/support公布的联系方式提出申请,管理端执行删除后,账号、口令哈希、同步正文、快照、会话、分享链接与邮件验证码全部即时删除, 仅保留与账号脱敏后的订单/激活码记录用于对账。你可以用同一邮箱重新注册。
数据边界:玄音音乐是播放器与本地曲库管理工具,本项目对第三方内容不作任何背书;
请仅播放你有权访问的内容。云同步是可选功能,不开通账号也能使用全部播放、歌词、均衡器与本地曲库能力。