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=… 이 열립니다. 페이지는 토큰을 1시간짜리 세션 토큰으로 교환하고(브라우저의 sessionStorage 에만 저장, 쿠키에는 절대 저장하지 않음) 배지 월로 리디렉션합니다. 세션은 탭을 닫거나 1시간의 활동이 지나면 — 둘 중 먼저 오는 쪽으로 — 만료됩니다.

배지 월 ​

로그인하면 포털에는 다음이 표시됩니다.

  • 상단에 당신의 핸들(예: badges.ninja/u/jane-3a4f) — 이메일의 로컬 부분에서 자동으로 제안되며, 유일성을 위해 4개의 랜덤 문자가 덧붙습니다. 변경 을 클릭해 더 나은 것을 고르세요.
  • badges.ninja를 통해 당신의 이메일로 발급된 모든 배지의 그리드, 가장 최근 순, 카드로 시각적으로 묶여 있습니다.
  • 카드별 작업:
    • 열기 — 공개 자격 증명 페이지(발급자/검증자가 보는 동일한 페이지)로 이동.
    • 프로필에서 숨기기 / 프로필에 표시 — 이 배지가 공개 프로필(/u/<handle>)에 나타날지 전환. 자격 증명 자체는 유효하게 남고, 공개적으로 나열되는 항목만 큐레이션합니다.

수령자 포털 배지 월

페이지네이션 ​

자격 증명은 한 번에 50개씩 로드됩니다. 더 많다면 하단에 더 보기 버튼이 나타납니다. 백엔드에서 안정적인 커서로 페이지네이션하므로 스크롤 중에도 순서가 흔들리지 않습니다.

로그아웃 ​

헤더의 로그아웃 버튼은 sessionStorage 에서 세션 토큰을 지웁니다. 탭을 닫으면 자동으로 동일한 동작이 수행됩니다.

당신의 공개 프로필 ​

핸들이 있으면 badges.ninja/u/<handle> 을 방문하는 누구나 당신의 표시 이름, 배지 수, 그리고 클릭 시 공개 자격 증명 페이지를 여는 배지별 카드가 포함된 깔끔한 그리드를 보게 됩니다.

수령자 공개 프로필

공개 프로필에는 숨기지 않은 배지만 표시됩니다. /u/<handle> URL을 공유하는 데 로그인은 필요 없습니다 — 당신 소유의 완전 공개 페이지입니다.

핸들 선택 ​

핸들은 3–20자, a-z 0-9 _ - 만 허용됩니다. 대소문자를 구분하지 않으며 badges.ninja에서 전역 고유합니다. 원하는 핸들이 사용 중이면 명확한 오류가 표시되고 다른 것을 고를 수 있습니다.

포털에서 언제든 핸들을 변경할 수 있습니다 — 새 핸들이 즉시 표준 URL이 되고, 이전 핸들은 다른 사람이 가져갈 수 있게 됩니다. 당신이 이전에 보낸 기존 공유 링크(/u/예전-handle)는 리디렉션하지 않고, 단지 "프로필을 찾을 수 없음" 이라고 표시됩니다.

데이터 삭제(GDPR) ​

포털 하단에 Badges Ninja에서 내 데이터 제거 링크가 있습니다. 이 기능은 다음을 수행합니다.

  1. 당신이 받은 모든 자격 증명에서 이메일을 불투명한 해시(예: removed:5f3a8b9c…)로 교체합니다. 자격 증명 자체(어서션 JSON과 배지 이미지)는 그대로 유지되어 자격을 무효화하지 않습니다 — 발급자는 여전히 당신의 배지를 보유합니다 — 하지만 당신은 검색 불가 가 됩니다: 어떤 포털에서든 당신의 이메일을 검색하면 결과가 없고, /me 로그인도 자격 증명을 찾지 못합니다.
  2. 프로필 행을 삭제 하여 /u/<handle> 은 404를 반환하고 해당 핸들은 다른 사람에게 개방됩니다.

이 작업은 되돌릴 수 없습니다. 정리가 완료되기 전 마음이 바뀔 때만 새 포털 세션(즉, 새 매직 링크)이 필요합니다.

이 작업이 하지 않는 것

  • 자격 증명을 삭제하지 않습니다. 당신에게 발급한 발급자는 여전히 기록을 보관합니다. Open Badges v2 어서션(/awards/<guid> 의 JSON 파일)은 검증 목적으로 여전히 유효합니다 — 명세가 그렇습니다.
  • 발급자가 자격 증명 자체를 삭제하길 원한다면(단순히 이메일 연결을 해제하는 것이 아니라) 발급자에게 직접 연락하세요.

자주 묻는 질문 ​

친구는 배지를 받았다고 하는데 표시되지 않아요 ​

두 가지 가능성:

  1. 발급자가 다른 이메일을 썼습니다. 많은 발급자가 회사 이메일로 발급합니다. 그 이메일로도 로그인해 보세요.
  2. 자격 증명이 수령자 포털 기능보다 이전에 이뤄졌습니다. 이메일이 설정된 자격 증명은 백필하지만, 매우 오래된 자격 증명은 수령자 이메일 없이 발급되었을 수 있습니다(플랫폼의 과거 자격 증명 중 약 99%). 이들은 직접 /awards/<guid> URL 로만 볼 수 있습니다.

Credly / Accredible / 다른 플랫폼에서 배지를 가져올 수 있나요? ​

아직은 아닙니다. 포털은 현재 badges.ninja를 통해 발급된 배지만 표시합니다. 발급자 간 집계("Open Badges Backpack" 모델)는 2010년대 초 Open Badges의 주요 목표였지만, 생태계는 사실상 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 토큰. 매직 링크 페이로드는 { kind: "magic", email, exp } 이며 AWS Secrets Manager(recipient/keys:tokenSecret)로 로테이션되는 서버 측 시크릿으로 서명됩니다. 검증 시 { kind: "session", email, exp } 토큰을 발급합니다. DB 기반 세션 테이블이 없습니다.
  • 이메일 조회: 수여 테이블의 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 } — 세션 토큰 반환
    • GET /me — 프로필 + 수여 첫 페이지(Bearer)
    • GET /me/awards?lastEvaluatedKey=… — 페이지네이션(Bearer)
    • PUT /me/handle { handle } — 핸들 설정/변경(Bearer)
    • PUT /me/awards/{guid}/visibility { hidden: bool } — 숨김 토글(Bearer)
    • POST /me/auth/forget — GDPR 연결 해제(Bearer)
    • GET /u/{handle} — 공개 프로필(인증 불필요)

badges.ninja Documentation