Română
Română
Appearance
Română
Română
Appearance
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:
| Public | URL | Autentificare |
|---|---|---|
| Emitent (cine acordă credențiale) | /dashboard | Cont real (e-mail + parolă / SSO) |
| Destinatar (cine primește credențiale) | /me | Link 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.
Accesează badges.ninja/me. Pagina afișează un singur câmp de e-mail:

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ă.
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.
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.
Odată autentificat, portalul afișează:
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./u/<handle>). Acordarea rămâne valabilă; doar îngrijești ce apare public.
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.
Butonul Ieși din antet șterge token-ul de sesiune din sessionStorage. Închiderea filei face același lucru automat.
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 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.
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”.
La baza portalului vei găsi un link Elimină datele mele din Badges Ninja. Funcționează astfel:
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./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
/awards/<guid>) rămân valabile în scop de verificare — așa prevede specificația.Două posibilități:
/awards/<guid>.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ță.
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.
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.
24 de ore. După acest interval, solicită unul nou — fără limite de frecvență și fără penalizare.
1 oră de la autentificare. Reîmprospătarea paginii în acest interval menține sesiunea activă; închiderea filei o încheie.
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.
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.
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ă.
{ 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.RECIPIENT_EMAIL_LC-TIMESTAMP din tabelul de acordări. E-mailul este normalizat în litere mici înainte de stocare și căutare.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.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.POST /me/auth/request { email } — trimite linkul magic prin e-mailPOST /me/auth/verify { token } — returnează tokenul de sesiuneGET /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)