Skip to content

Portalul destinatarului

Portalul destinatarului este un spațiu de auto-servire la badges.ninja/me unde orice persoană care a primit o credențială se poate autentifica (fără a fi nevoie de cont), poate parcurge toate credențialele primite prin badges.ninja și își poate îngriji un profil public pentru a le distribui.

Este o experiență separată de panoul emitentului:

PublicURLAutentificare
Emitent (cine acordă credențiale)/dashboardCont real (e-mail + parolă / SSO)
Destinatar (cine primește credențiale)/meLink magic prin e-mail — fără cont, fără parolă
Oricine (verificatori)/awards/<guid>, /verify/<guid>, /u/<handle>Niciuna — complet publică

De ce fără parolă?

Destinatarii nu ar trebui să-și amintească o altă autentificare doar pentru a consulta credențialele primite. În schimb le trimitem un link unic prin e-mail.

Cum se autentifică destinatarii

1. Introdu adresa de e-mail

Accesează badges.ninja/me. Pagina afișează un singur câmp de e-mail:

Formular de autentificare al portalului destinatarului

Introdu adresa care a primit credențialele și apasă Trimite-mi un link de autentificare.

Răspundem cu un mesaj „verifică-ți căsuța” indiferent dacă există acordări pentru acea adresă. Astfel evităm să dezvăluim dacă un e-mail a primit vreodată o credențială de la vreun emitent de pe platformă.

2. Deschide linkul magic

Dacă există acordări pentru adresă, primești un e-mail intitulat "Sign in to your Badges Ninja portal" cu un singur buton:

Open my portal

Linkul este valabil 24 de ore și funcționează o singură dată. Dacă expiră înainte să-l apeși, solicită unul nou — fără penalizare.

3. Ai intrat

Apăsarea linkului deschide badges.ninja/me?token=…. Pagina schimbă token-ul cu unul de sesiune de 1 oră (păstrat doar în sessionStorage-ul browserului, niciodată în cookie-uri) și te redirecționează la zidul credențialelor. Sesiunea expiră la închiderea filei sau după o oră de activitate, oricare vine prima.

Zidul credențialelor

Odată autentificat, portalul afișează:

  • Aliasul tău în partea de sus (ex. badges.ninja/u/jane-3a4f) — propus automat pornind de la partea locală a e-mailului, cu 4 caractere aleatorii adăugate pentru unicitate. Apasă Schimbă pentru a alege unul mai frumos.
  • O grilă cu fiecare credențială livrată către e-mailul tău prin badges.ninja, de la cea mai recentă la cea mai veche, grupată vizual pe carduri.
  • Acțiuni per card:
    • Deschide — accesează pagina publică a acordării (aceeași pe care o văd emitenții/verificatorii).
    • Ascunde din profil / Afișează în profil — comută dacă această credențială apare sau nu în profilul tău public (/u/<handle>). Acordarea rămâne valabilă; doar îngrijești ce apare public.

Zidul de credențiale al portalului destinatarului

Paginare

Acordările se încarcă câte 50 odată. Dacă ai mai multe, în partea de jos apare un buton Încarcă mai multe; paginăm cu cursor stabil pe backend, astfel încât ordinea nu se modifică în timpul derulării.

Deconectare

Butonul Ieși din antet șterge token-ul de sesiune din sessionStorage. Închiderea filei face același lucru automat.

Profilul tău public

Odată ce ai un alias, orice persoană care vizitează badges.ninja/u/<handle> va vedea o grilă îngrijită cu credențialele tale, cu numele afișat și numărul de credențiale, plus carduri per credențială care la apăsare deschid pagina publică a acordării.

Profilul public al destinatarului

Profilul public arată doar credențialele pe care nu le-ai ascuns. Nu trebuie să te autentifici pentru a distribui URL-ul /u/<handle> — este o pagină complet publică care îți aparține.

Alegerea unui alias

Aliasurile trebuie să aibă între 3 și 20 de caractere, doar a-z 0-9 _ -. Nu fac diferență între majuscule și minuscule și sunt unice la nivel global pe badges.ninja. Dacă aliasul dorit este ocupat, vei primi o eroare clară și vei putea alege altul.

Poți schimba aliasul oricând din portal — cel nou devine imediat URL-ul canonic, iar cel vechi rămâne disponibil pentru cineva altcineva. Linkurile trimise anterior (/u/old-handle) nu vor redirecționa — vor afișa doar „Profil negăsit”.

Eliminarea datelor tale (GDPR)

La baza portalului vei găsi un link Elimină datele mele din Badges Ninja. Funcționează astfel:

  1. Înlocuiește e-mailul tău pe fiecare acordare primită cu un hash opac (ex. removed:5f3a8b9c…). Acordarea în sine rămâne intactă (JSON-ul assertion-ului, imaginea credențialei, dovada blockchain, dacă există), iar credențiala nu este invalidată — emitenții încă păstrează credențiala — însă devii indetectabil: căutarea e-mailului tău în orice portal nu aduce rezultate, iar autentificarea prin /me încetează să mai găsească acordări.
  2. Șterge rândul profilului, astfel încât /u/<handle> răspunde 404, iar aliasul devine disponibil pentru altcineva.

Este ireversibilă. Vei avea nevoie de o sesiune nouă în portal (adică un nou link magic) doar dacă te răzgândești înainte de finalizarea curățării.

Ce NU face acest proces

  • Nu șterge acordările. Emitentul care ți le-a livrat păstrează în continuare înregistrarea. Assertion-urile Open Badges v2 (fișierele JSON de la /awards/<guid>) rămân valabile în scop de verificare — așa prevede specificația.
  • Dacă dorești ca un emitent să șteargă cu adevărat o acordare (nu doar să deconecteze e-mailul tău de aceasta), contactează direct emitentul.

Întrebări uzuale

Un cunoscut spune că a câștigat o credențială, dar nu îi apare

Două posibilități:

  1. Emitentul a folosit o altă adresă de e-mail. Mulți emitenți acordă credențiale pe adresa corporativă; încearcă autentificarea și cu aceea.
  2. Acordarea este anterioară funcționalității portalului destinatarului. Completăm retroactiv e-mailurile la acordările care aveau una setată, însă unele foarte vechi pot fi fost emise fără adresa destinatarului (aproximativ 99% din acordările istorice de pe platformă). Acelea pot fi văzute doar prin URL-ul direct /awards/<guid>.

Pot importa credențiale din Credly / Accredible / alte platforme?

Nu încă. Portalul afișează doar credențialele emise prin badges.ninja. Agregarea între emitenți (modelul „Open Badges Backpack”) a fost un obiectiv major pentru Open Badges la începutul anilor 2010, însă ecosistemul extins s-a mutat către LinkedIn ca agregator de facto. Nu intenționăm să concurăm pe această suprafață.

Pot adăuga o credențială în profilul meu LinkedIn?

Da — fiecare pagină publică de acordare (/awards/<guid>) arată un buton Add to LinkedIn profile atunci când emitentul și-a setat LinkedIn organization ID. Butonul folosește deep link-ul Add-to-Profile de la LinkedIn, astfel încât credențiala ajunge direct în secțiunea Certifications fără copy-paste manual.

Pot vedea contoarele mele de vizualizări?

Fiecare pagină de acordare urmărește vizualizările, distribuirile, descărcările și adăugările la LinkedIn. Emitenții văd aceste cifre în propriul panou; destinatarii le văd pe pagina publică a acordării. Conform convenției Credly, identitatea vizitatorului nu este niciodată înregistrată — doar numărul.

Cât durează linkul magic?

24 de ore. După acest interval, solicită unul nou — fără limite de frecvență și fără penalizare.

Cât durează sesiunea?

1 oră de la autentificare. Reîmprospătarea paginii în acest interval menține sesiunea activă; închiderea filei o încheie.

Poate altcineva să îmi vadă credențialele ascunse?

Nu. Credențialele ascunse sunt filtrate din vizualizarea publică /u/<handle>. Sunt vizibile doar pentru tine atâta timp cât ești autentificat în portal.

Pot descărca credențialele mele?

Da — deschide orice credențială din portal și folosește butoanele Download PNG (Open Badges baked) sau Download PDF certificate din pagina publică a acordării. Ambele sunt semnate și verificabile conform specificației Open Badges v2.

Cum arată pentru emitenți

Accesul destinatarilor la portal nu schimbă nimic pentru emitent — tabelul de acordări din panoul emitentului funcționează exact la fel. Portalul este pur aditiv.

Dacă ești emitent și citești asta, iar încă nu ți-ai setat LinkedIn organization ID, fă-o acum: Gestionarea emitenților → LinkedIn add-to-profile. Este cea mai mare pârghie pentru rata de distribuire pe platformă.

Detalii tehnice (pentru curioși)

Pentru integratori / pasionați Open Badges
  • Model de autentificare: token-uri HMAC fără stare. Payload-ul linkului magic este { kind: "magic", email, exp } semnat cu un secret de server rotit prin AWS Secrets Manager (recipient/keys:tokenSecret). La verificare emitem un token { kind: "session", email, exp }. Fără tabel de sesiune în BD.
  • Căutare după e-mail: interoghează GSI-ul RECIPIENT_EMAIL_LC-TIMESTAMP din tabelul de acordări. E-mailul este normalizat în litere mici înainte de stocare și căutare.
  • Profil public: fiecare rând de profil păstrează EMAIL_LC astfel încât /u/<handle> să poată lista acordările fără ca destinatarul să fie autentificat. Acordările ascunse sunt filtrate pe server.
  • Uitare GDPR: rescrie RECIPIENT_EMAIL_LC-ul fiecărei acordări corespunzătoare în removed:<random> și elimină atributul simplu RECIPIENT_EMAIL prin UPDATE în DynamoDB. Rândul de profil este șters.
  • Endpoint-uri (fără Cognito; autentificare prin link magic):
    • POST /me/auth/request { email } — trimite linkul magic prin e-mail
    • POST /me/auth/verify { token } — returnează tokenul de sesiune
    • GET /me — profil + prima pagină de acordări (Bearer)
    • GET /me/awards?lastEvaluatedKey=… — paginat (Bearer)
    • PUT /me/handle { handle } — setează/schimbă aliasul (Bearer)
    • PUT /me/awards/{guid}/visibility { hidden: bool } — comută ascunderea (Bearer)
    • POST /me/auth/forget — deconectare GDPR (Bearer)
    • GET /u/{handle} — profil public (fără autentificare)

badges.ninja Documentation