解读导出的 JSON

上次更新:2026年8月12日

解读导出的 JSON

在「隐私」页完成导出我的数据并下载后,你会得到名为 swaymoon-passport-export.json 的文件。本文说明如何阅读其中的字段。字段集合以你下载时实际内容为准;若某段为空数组或 null,表示当时没有对应记录。

可用文本编辑器或 JSON 查看器打开文件。请勿把完整导出文件发给不可信的第三方。

顶层结构

导出文件是一个 JSON 对象,常见顶层键如下:

字段含义
accountId你的通行账户内部标识(字符串)。第三方应用通常不会直接拿到这个值;它们使用各自的用户标识(sub)。
exportedAt导出生成时间(UTC,ISO-8601,例如 2026-08-06T02:15:30.123Z)。
profile资料档案(昵称、签名、地区等)。
identifiers已绑定的登录标识(邮箱、手机号、用户名、第三方登录等)。
hasPassword是否已设置密码(布尔值)。true 表示可用密码登录;不包含密码本身。
authorizedApps曾通过通行账户授权过的第三方应用。
sessions当时仍登记在案的登录会话摘要。
consentHistory同意账本记录(注册条款、第三方授权等)。

profile:资料档案

字段含义
nickname展示用昵称
bio个性签名
region国家或地区
birthday生日(日期字符串,未填写可为 null
gender性别代码(未填写可为 null
username用户名(若已设置)
avatarPath头像在存储中的路径标识;不是对外可直接打开的完整 URL

未填写的项可能为 null 或空字符串。

identifiers:登录标识

数组,每项大致为:

{ "type": "EMAIL", "value": "you@example.com", "primary": true }
字段含义
type标识类型,常见值:EMAIL(邮箱)、PHONE(手机号)、USERNAME(用户名)、GOOGLEGITHUB
value该标识的具体值(邮箱地址、手机号等)
primary是否为主要标识。主要标识影响登录默认身份展示,以及授权时是否可选用隐私邮件等能力

同一账户可绑定多个标识;只有一个通常为主要标识。

authorizedApps:授权应用

数组,每项对应一次(或一条历史)第三方授权记录:

字段含义
clientId应用的客户端 ID
clientName应用显示名称(登记时的名称)
firstGrantedAt首次授权时间(时间戳字符串)
relayAlias若授权时选用了隐私邮件,此处为别名本地部分(不含 @privaterelay.swaymoon.com);未使用则为 null
revokedAt若已撤销授权,为撤销时间;仍有效时为 null

如何在产品内管理这些授权,见《授权应用》。revokedAt 有值只表示通行账户侧已撤销,不表示第三方已删除此前取得的数据。

sessions:登录会话

数组,每项为会话摘要(不含完整会话令牌):

字段含义
createdAt会话创建时间
userAgent当时记录的浏览器 / 客户端 User-Agent
remoteAddr当时记录的大致网络地址(用于安全审计;不一定等于你当前公网 IP)

可在通行账户的安全相关页面结束不需要的会话。导出只是快照,下载后新建的会话不会出现在旧文件里。

consentHistory:同意账本

数组,记录你对条款或第三方共享作出的同意相关动作,便于核对「何时、对谁、因何目的」同意过处理:

字段含义
purpose目的代码。常见如 terms_of_service(接受用户协议等)、third_party_sign_in(用通行账户登录第三方)
recipient接收方:摇月自身,或第三方的 clientId
dataCategories涉及的数据类别摘要(逗号分隔字符串,例如 accountaccount_identifier,profile
crossBorder是否标记为跨境相关(布尔值)
action动作类型,常见为 GRANTED(授予)或 REVOKED(撤销)
recordedAt记账时间

账本用于透明度与合规留痕;不等于第三方仍持有有效访问令牌。令牌是否仍可用,还取决于授权是否已撤销、令牌是否过期等。

阅读示例

下面是一份虚构、已脱敏的结构示意(数值与真实导出不同):

{
  "accountId": "acc_xxxxxxxx",
  "exportedAt": "2026-08-06T02:15:30.123Z",
  "profile": {
    "nickname": "小月",
    "bio": "你好",
    "region": "CN",
    "birthday": "1990-01-01",
    "gender": "unspecified",
    "username": "xiaoyue",
    "avatarPath": "avatars/acc_xxxxxxxx/…"
  },
  "identifiers": [
    { "type": "EMAIL", "value": "you@example.com", "primary": true },
    { "type": "USERNAME", "value": "xiaoyue", "primary": false }
  ],
  "hasPassword": true,
  "authorizedApps": [
    {
      "clientId": "app_demo",
      "clientName": "示例应用",
      "firstGrantedAt": "2026-07-01T10:00:00Z",
      "relayAlias": "abc123",
      "revokedAt": null
    }
  ],
  "sessions": [
    {
      "createdAt": "2026-08-05T12:00:00Z",
      "userAgent": "Mozilla/5.0 …",
      "remoteAddr": "203.0.113.10"
    }
  ],
  "consentHistory": [
    {
      "purpose": "terms_of_service",
      "recipient": "摇月 Swaymoon",
      "dataCategories": "account",
      "crossBorder": false,
      "action": "GRANTED",
      "recordedAt": "2026-06-01T08:00:00Z"
    }
  ]
}

安全建议

  • 导出文件含可识别你身份的信息,请本地加密保存或放在安全位置,用完可删除。
  • 向客服求助时,一般只需说明问题与时间范围,不要主动附上完整 JSON。
  • 导出是某一时刻的快照;之后的授权、撤销或资料修改不会写回已下载的文件。需要最新内容时请重新导出。

返回操作步骤见《导出数据与注销账户》。