Skip to content

接收者门户

接收者门户是位于 badges.ninja/me 的自助区域,任何获得过徽章的人都可以在此登录(无需账号),浏览自己通过 badges.ninja 获得的所有凭证,并打造公开个人主页进行分享。

它与颁发者控制台是两种独立的体验:

受众URL认证
颁发者(颁发徽章的人)/dashboard真实账号(邮箱 + 密码 / SSO)
接收者(获得徽章的人)/me通过邮件的魔法链接 — 无账号、无密码
任何人(验证者)/awards/<guid>/verify/<guid>/u/<handle>无 — 完全公开

为什么不用密码?

接收者不该仅仅为了看自己获得的徽章而额外记一个登录。我们改为给他们发送一次性链接。

接收者如何登录

1. 输入你的邮箱

访问 badges.ninja/me。页面仅显示一个邮箱输入框:

接收者门户登录表单

输入接收过徽章的邮箱地址,点击 给我发送登录链接

不管该地址是否存在颁发记录,我们都会返回"请查看邮箱"的提示。这样可避免泄露某个邮箱是否曾从平台上的任何颁发者处收到过徽章。

2. 打开魔法链接

如果该地址确有颁发,你会收到一封标题为 "登录你的 Badges Ninja 门户" 的邮件,里面只有一个按钮:

打开我的门户

链接在 24 小时 内有效,且只能使用一次。若在点击前过期,请重新申请一条 — 没有任何惩罚。

3. 已登录

点击链接会打开 badges.ninja/me?token=…。页面会将该 token 换成 1 小时有效的会话 token(仅存放在浏览器的 sessionStorage,不会写入 cookie),并重定向到徽章墙。关闭标签或活动一小时后(以先到为准),会话会过期。

徽章墙

登录后,门户会显示:

  • 你的 handle 在顶部(例如 badges.ninja/u/jane-3a4f)— 从你邮箱本地部分自动建议,并附加 4 个随机字符以保证唯一。点击 更改 可以选更漂亮的。
  • 通过 badges.ninja 发往你邮箱的每一枚徽章组成的网格,最新在前,按卡片视觉分组。
  • 每张卡片的操作:
    • 打开 — 跳转到公开颁发页(颁发者/验证者看到的同一页)。
    • 在个人主页隐藏 / 在个人主页显示 — 切换这枚徽章是否出现在你的公开主页(/u/<handle>)。颁发本身仍然有效;你只是管理公开列出的内容。

接收者门户的徽章墙

分页

颁发每次加载 50 条。如果超过,底部会出现 加载更多 按钮;后端以稳定游标分页,滚动时顺序不会变动。

退出登录

顶栏的 退出登录 按钮会从 sessionStorage 清除会话 token。关闭标签也会自动做相同的事。

你的公开主页

当你拥有 handle 后,任何访问 badges.ninja/u/<handle> 的人都会看到你的徽章整洁网格,带显示名和徽章数量,以及每枚徽章的卡片 — 点击可打开公开颁发页。

接收者公开主页

公开主页只显示你未隐藏的徽章。分享 /u/<handle> URL 无需登录 — 它是你拥有的完全公开页面。

选择 handle

handle 必须为 3-20 个字符,只能是 a-z 0-9 _ -。不区分大小写,且在 badges.ninja 全局唯一。如果想要的 handle 被占用,你会收到明确错误,可以换一个。

你可以随时在门户更改 handle — 新的会立刻成为规范 URL,旧的则对他人开放重新认领。你已发出的旧分享链接(/u/旧-handle)不会跳转 — 它们只会显示"未找到主页"。

移除你的数据(GDPR)

门户底部有一个 从 Badges Ninja 移除我的数据 的链接。它会做以下事情:

  1. 用一个不透明哈希(例如 removed:5f3a8b9c…)替换你在每条收到的颁发记录中的邮箱。颁发本身保持不变(assertion JSON、徽章图片、区块链证明如有),因此你不会使凭证失效 — 颁发者仍保有你的徽章 — 但你变得 无法被发现:在任何门户搜索你的邮箱都不返回结果,你的 /me 登录也不会再找到颁发记录。
  2. 删除你的主页行,因此 /u/<handle> 返回 404,该 handle 可被他人使用。

该操作不可逆。只有在清理完成前改变主意时,你才需要新的门户会话(即新的魔法链接)。

该操作 不会:

  • 它不会删除颁发记录。颁发给你的颁发者仍保留记录。Open Badges v2 assertion(在 /awards/<guid> 的 JSON 文件)出于验证目的保持有效 — 这是规范要求。
  • 如果你想让颁发者真正删除某条颁发(而不仅仅是解绑你的邮箱),请直接联系颁发者。

常见问题

朋友说他获得了徽章,但却没显示

两种可能:

  1. 颁发者用了另一个邮箱。 许多颁发者使用企业邮箱颁发;也试用那个邮箱登录。
  2. 该颁发早于接收者门户功能。 我们会为之前设置过邮箱的颁发回填邮箱,但非常早期的颁发可能完全没有接收者邮箱(约占平台历史颁发的 99%)。那些只能通过直接的 /awards/<guid> URL 查看。

我可以从 Credly / Accredible / 其他平台导入徽章吗?

暂时不能。门户目前仅显示通过 badges.ninja 颁发的徽章。跨颁发者聚合("Open Badges Backpack" 模型)是 Open Badges 在 2010 年代初的重大目标,但生态已转向 LinkedIn 作为事实上的聚合方。我们不打算在这个方向竞争。

我可以将徽章添加到 LinkedIn 个人资料吗?

可以 — 当颁发者设置了 LinkedIn 组织 ID 时,每个公开颁发页(/awards/<guid>)都有 添加到 LinkedIn 个人资料 按钮。该按钮使用 LinkedIn 的 Add-to-Profile 深链,徽章会直接进入你的"证书"板块,无需手动复制粘贴。

我能看到自己的浏览统计吗?

每个颁发页都追踪浏览数、分享数、下载数以及 LinkedIn 添加点击。颁发者在自己的控制台看到这些;接收者在公开颁发页看到。按照 Credly 的惯例,从不记录访客身份 — 仅记录计数。

魔法链接有效期多久?

24 小时。之后请再申请一条 — 无速率限制,无惩罚。

会话有效期多久?

登录后 1 小时。在此窗口内刷新页面会保持会话;关闭标签则结束会话。

其他人能看到我隐藏的徽章吗?

不能。隐藏的徽章会在公开的 /u/<handle> 视图中被过滤。仅当你登录到门户时它们才对你可见。

我可以下载我的徽章吗?

可以 — 从门户打开任意徽章,然后在公开颁发页使用 下载 PNG(Open Badges baked)下载 PDF 证书 按钮。两者都已签名,可根据 Open Badges v2 规范验证。

对颁发者而言是什么样的

接收者访问门户对颁发者没有任何影响 — 颁发者控制台上的颁发表格工作方式完全一致。门户纯粹是增量功能。

如果你是颁发者且尚未设置 LinkedIn 组织 ID,现在就设置:管理颁发者 → LinkedIn 添加到个人资料。它是平台上最大的"分享率"杠杆。

技术细节(给好奇者)

面向平台集成方 / Open Badges 极客
  • 认证模型:无状态 HMAC token。魔法链接负载为 { kind: "magic", email, exp },使用通过 AWS Secrets Manager 轮换的服务端密钥签名(recipient/keys:tokenSecret)。验证时签发 { kind: "session", email, exp } token。无需数据库存储会话。
  • 按邮箱查询:查询颁发表上的 RECIPIENT_EMAIL_LC-TIMESTAMP GSI。邮箱在存储和查询前规范化为小写。
  • 公开主页:每行主页存储 EMAIL_LC,以便 /u/<handle> 在接收者未登录时也能列出颁发。隐藏的颁发在服务端过滤。
  • GDPR 被遗忘:将每条匹配颁发行的 RECIPIENT_EMAIL_LC 重写为 removed:<random>,并通过 DynamoDB UPDATE 删除明文 RECIPIENT_EMAIL 属性。主页行被删除。
  • 端点(无 Cognito;采用魔法链接认证):
    • POST /me/auth/request { email } — 邮件发送魔法链接
    • POST /me/auth/verify { token } — 返回会话 token
    • GET /me — 主页 + 首页颁发(Bearer)
    • GET /me/awards?lastEvaluatedKey=… — 分页(Bearer)
    • PUT /me/handle { handle } — 设置/更改 handle(Bearer)
    • PUT /me/awards/{guid}/visibility { hidden: bool } — 切换隐藏(Bearer)
    • POST /me/auth/forget — GDPR 解绑(Bearer)
    • GET /u/{handle} — 公开主页(无需认证)

badges.ninja Documentation