Skip to content

Cổng người nhận

Cổng người nhận là khu vực tự phục vụ tại badges.ninja/me, nơi bất kỳ ai đã được cấp huy hiệu có thể đăng nhập (không cần tài khoản), duyệt mọi chứng chỉ họ đã nhận qua badges.ninja và tạo một hồ sơ công khai để chia sẻ.

Nó là một trải nghiệm riêng biệt so với bảng điều khiển đơn vị cấp:

Đối tượngURLXác thực
Đơn vị cấp (người cấp huy hiệu)/dashboardTài khoản thực (email + mật khẩu / SSO)
Người nhận (người lấy huy hiệu)/meLiên kết ma thuật qua email — không tài khoản, không mật khẩu
Bất kỳ ai (người xác thực)/awards/<guid>, /verify/<guid>, /u/<handle>Không — hoàn toàn công khai

Tại sao không có mật khẩu?

Người nhận không nên phải nhớ thêm một đăng nhập chỉ để xem huy hiệu họ đã nhận. Chúng tôi gửi cho họ một liên kết dùng một lần thay vì vậy.

Cách người nhận đăng nhập

1. Nhập email

Truy cập badges.ninja/me. Trang có một trường email duy nhất:

Biểu mẫu đăng nhập cổng người nhận

Nhập địa chỉ email đã nhận các huy hiệu và nhấp Gửi cho tôi liên kết đăng nhập.

Chúng tôi phản hồi bằng thông báo "hãy kiểm tra hộp thư" bất kể có lần cấp nào tồn tại cho địa chỉ đó hay không. Điều này tránh làm lộ việc một email có đã từng nhận huy hiệu từ bất kỳ đơn vị cấp nào trên nền tảng.

2. Mở liên kết ma thuật

Nếu có lần cấp cho địa chỉ đó, bạn sẽ nhận được một email với tiêu đề "Sign in to your Badges Ninja portal" với một nút:

Mở cổng của tôi

Liên kết có hiệu lực trong 24 giờ và chỉ dùng được một lần. Nếu hết hạn trước khi bạn nhấp, chỉ cần yêu cầu một liên kết mới — không phạt.

3. Bạn đã vào

Nhấp liên kết sẽ mở badges.ninja/me?token=…. Trang hoán đổi token lấy một token phiên 1 giờ (chỉ lưu trong sessionStorage của trình duyệt, không bao giờ lưu cookie) và chuyển bạn đến tường huy hiệu. Phiên hết hạn khi bạn đóng tab hoặc sau một giờ hoạt động, bên nào tới trước.

Tường huy hiệu

Sau khi đăng nhập, cổng hiển thị:

  • Handle của bạn ở trên cùng (ví dụ badges.ninja/u/jane-3a4f) — được gợi ý tự động từ phần local của email với 4 ký tự ngẫu nhiên được thêm để đảm bảo duy nhất. Nhấp Đổi để chọn tên đẹp hơn.
  • Một lưới hiển thị mọi huy hiệu được cấp cho email của bạn qua badges.ninja, mới nhất trước, nhóm trực quan theo thẻ.
  • Hành động cho từng thẻ:
    • Mở — đi đến trang cấp công khai (trang giống như đơn vị cấp/người xác thực thấy).
    • Ẩn khỏi hồ sơ / Hiển thị trên hồ sơ — bật/tắt việc huy hiệu này xuất hiện trên hồ sơ công khai (/u/<handle>). Lần cấp vẫn hợp lệ; bạn chỉ chọn liệt kê gì công khai.

Tường huy hiệu cổng người nhận

Phân trang

Các lần cấp được tải 50 cái một lần. Nếu bạn có nhiều hơn, nút Tải thêm xuất hiện ở cuối; chúng tôi phân trang bằng con trỏ ổn định ở backend, nên thứ tự không thay đổi khi bạn cuộn.

Đăng xuất

Nút Đăng xuất trên tiêu đề xóa token phiên khỏi sessionStorage. Đóng tab cũng tự động làm điều tương tự.

Hồ sơ công khai của bạn

Sau khi có handle, bất kỳ ai truy cập badges.ninja/u/<handle> sẽ thấy lưới gọn gàng các huy hiệu của bạn, kèm tên hiển thị và số lượng huy hiệu, cùng các thẻ từng huy hiệu mở trang cấp công khai khi nhấp.

Hồ sơ công khai người nhận

Hồ sơ công khai chỉ hiển thị huy hiệu bạn chưa ẩn. Bạn không cần đăng nhập để chia sẻ URL /u/<handle> — nó là trang hoàn toàn công khai mà bạn sở hữu.

Chọn handle

Handle phải dài 3–20 ký tự, chỉ a-z 0-9 _ -. Chúng không phân biệt chữ hoa/thường và duy nhất trên toàn badges.ninja. Nếu handle bạn muốn đã được dùng, bạn sẽ nhận lỗi rõ ràng và có thể chọn khác.

Bạn có thể đổi handle bất cứ lúc nào từ cổng — handle mới trở thành URL chính thức ngay lập tức, và handle cũ được mở cho người khác đăng ký. Liên kết chia sẻ bạn đã gửi (/u/old-handle) sẽ không chuyển hướng — chỉ báo "Không tìm thấy hồ sơ".

Gỡ bỏ dữ liệu của bạn (GDPR)

Ở cuối cổng có liên kết Gỡ dữ liệu của tôi khỏi Badges Ninja. Nó làm những việc sau:

  1. Thay thế email của bạn trên mọi lần cấp bạn đã nhận bằng một băm mờ (ví dụ removed:5f3a8b9c…). Bản thân lần cấp vẫn nguyên vẹn (JSON assertion, hình ảnh huy hiệu, bằng chứng blockchain nếu có) nên bạn không làm chứng chỉ mất hiệu lực — đơn vị cấp vẫn giữ huy hiệu của bạn — nhưng bạn trở nên không thể khám phá: tìm email của bạn trong bất kỳ cổng nào đều không có kết quả, và đăng nhập /me không còn tìm thấy lần cấp.
  2. Xóa dòng hồ sơ của bạn, nên /u/<handle> trả về 404 và handle được mở cho người khác.

Hành động này không thể đảo ngược. Bạn sẽ cần phiên cổng mới (tức là liên kết ma thuật mới) chỉ khi bạn đổi ý trước khi việc dọn dẹp hoàn tất.

Điều này KHÔNG làm

  • Nó không xóa các lần cấp. Đơn vị cấp đã trao cho bạn vẫn giữ bản ghi. Các assertion Open Badges v2 (các tệp JSON tại /awards/<guid>) vẫn hợp lệ cho mục đích xác thực — đó là đặc tả.
  • Nếu bạn muốn đơn vị cấp thực sự xóa một lần cấp (không chỉ tách email khỏi nó), hãy liên hệ trực tiếp với đơn vị cấp.

Hỏi đáp

Bạn của tôi nói họ đã lấy một huy hiệu nhưng nó không hiện ra

Hai khả năng:

  1. Đơn vị cấp đã dùng email khác. Nhiều đơn vị cấp trao theo email công ty; hãy thử đăng nhập bằng email đó luôn.
  2. Lần cấp cũ hơn tính năng cổng người nhận. Chúng tôi lấp email cho các lần cấp có set email, nhưng các lần cấp rất cũ có thể không hề đặt email người nhận (~99% lịch sử cấp trên nền tảng). Chúng chỉ có thể xem qua URL /awards/<guid> trực tiếp.

Tôi có thể nhập huy hiệu từ Credly / Accredible / nền tảng khác không?

Chưa. Cổng hiện tại chỉ hiển thị huy hiệu được cấp qua badges.ninja. Tổng hợp qua nhiều đơn vị cấp (mô hình "Open Badges Backpack") là mục tiêu lớn của Open Badges đầu những năm 2010, nhưng hệ sinh thái rộng hơn đã chuyển sang LinkedIn làm nhà tổng hợp thực tế. Chúng tôi không có kế hoạch cạnh tranh ở mặt đó.

Tôi có thể thêm huy hiệu vào hồ sơ LinkedIn của mình không?

Có — mọi trang cấp công khai (/awards/<guid>) có nút Thêm vào hồ sơ LinkedIn khi đơn vị cấp đã đặt LinkedIn organization ID của họ. Nút dùng deep-link Add-to-Profile của LinkedIn, nên huy hiệu xuất hiện trực tiếp trong mục Certifications mà không cần sao chép thủ công.

Số lượt xem có hiển thị cho tôi không?

Mỗi trang cấp theo dõi lượt xem, chia sẻ, tải về và lượt nhấp LinkedIn add. Đơn vị cấp thấy các đếm này trên bảng điều khiển của họ; người nhận thấy chúng trên trang cấp công khai. Theo quy ước Credly, danh tính người xem không bao giờ được ghi — chỉ có số đếm.

Liên kết ma thuật kéo dài bao lâu?

24 giờ. Sau đó, yêu cầu một liên kết mới — không giới hạn tần suất, không phạt.

Phiên kéo dài bao lâu?

1 giờ từ khi đăng nhập. Làm mới trang trong cửa sổ đó sẽ giữ phiên sống; đóng tab sẽ kết thúc nó.

Người khác có thể thấy huy hiệu tôi đã ẩn không?

Không. Huy hiệu ẩn được lọc khỏi góc nhìn công khai /u/<handle>. Chúng chỉ hiển thị cho bạn khi bạn đã đăng nhập cổng.

Tôi có thể tải huy hiệu của mình không?

Có — mở bất kỳ huy hiệu nào từ cổng, sau đó dùng các nút Tải PNG (Open Badges baked) hoặc Tải chứng nhận PDF trên trang cấp công khai. Cả hai đều được ký và có thể xác thực theo đặc tả Open Badges v2.

Đối với đơn vị cấp, nó trông như thế nào

Việc người nhận truy cập cổng không thay đổi gì cho đơn vị cấp — bảng cấp trên bảng điều khiển của đơn vị cấp hoạt động y hệt. Cổng là tính năng cộng thêm thuần túy.

Nếu bạn là đơn vị cấp đang đọc điều này và chưa đặt LinkedIn organization ID, làm ngay bây giờ: Quản lý đơn vị cấp → Thêm vào hồ sơ LinkedIn. Đó là đòn bẩy "tỉ lệ chia sẻ" lớn nhất trên nền tảng.

Chi tiết kỹ thuật (cho người tò mò)

Dành cho người tích hợp nền tảng / người nghiên cứu Open Badges
  • Mô hình xác thực: token HMAC phi trạng thái. Payload liên kết ma thuật là { kind: "magic", email, exp } được ký bằng khóa bí mật phía máy chủ luân chuyển qua AWS Secrets Manager (recipient/keys:tokenSecret). Khi xác minh, chúng tôi cấp token { kind: "session", email, exp }. Không có bảng phiên hỗ trợ DB.
  • Tra cứu email: truy vấn GSI RECIPIENT_EMAIL_LC-TIMESTAMP trên bảng lần cấp. Email được chuẩn hóa về chữ thường trước khi lưu và tra cứu.
  • Hồ sơ công khai: mỗi dòng hồ sơ lưu EMAIL_LC nên /u/<handle> có thể liệt kê lần cấp mà không cần người nhận đăng nhập. Lần cấp ẩn được lọc phía máy chủ.
  • Quên GDPR: ghi lại RECIPIENT_EMAIL_LC của mỗi dòng lần cấp phù hợp thành removed:<random> và loại bỏ thuộc tính RECIPIENT_EMAIL dạng văn bản qua DynamoDB UPDATE. Dòng hồ sơ bị xóa.
  • Điểm cuối (không Cognito; xác thực liên kết ma thuật):
    • POST /me/auth/request { email } — gửi email liên kết ma thuật
    • POST /me/auth/verify { token } — trả về token phiên
    • GET /me — hồ sơ + trang lần cấp đầu tiên (Bearer)
    • GET /me/awards?lastEvaluatedKey=… — phân trang (Bearer)
    • PUT /me/handle { handle } — đặt/đổi handle (Bearer)
    • PUT /me/awards/{guid}/visibility { hidden: bool } — bật/tắt ẩn (Bearer)
    • POST /me/auth/forget — gỡ liên kết GDPR (Bearer)
    • GET /u/{handle} — hồ sơ công khai (không xác thực)

badges.ninja Documentation