हिन्दी
हिन्दी
Appearance
हिन्दी
हिन्दी
Appearance
badges.ninja एक सार्वजनिक क्रिप्टोग्राफ़िक पहचान प्रकाशित करता है ताकि तृतीय पक्ष उन क्रेडेंशियल को सत्यापित कर सकें जो डिजिटल हस्ताक्षर धारण करते हैं। यह Open Badges 3.0 / W3C Verifiable Credentials समर्थन की नींव है।
ये एंडपॉइंट सार्वजनिक हैं और किसी प्रमाणीकरण की आवश्यकता नहीं है। ये https://api.badges.ninja के सापेक्ष हैं।
प्लेटफ़ॉर्म की जारीकर्ता पहचान did:web पहचानकर्ता है:
did:web:api.badges.ninjadid:web नियमों के अनुसार, यह नीचे दिए गए well-known पथ पर सर्व किए गए DID दस्तावेज़ में रिज़ॉल्व होता है।
GET /.well-known/did.jsonDID दस्तावेज़ लौटाता है जो जारीकर्ता की सार्वजनिक हस्ताक्षर कुंजी (एक Ed25519 JsonWebKey2020) को उसके assertionMethod के रूप में प्रकट करता है।
curl https://api.badges.ninja/.well-known/did.json{
"@context": [
"https://www.w3.org/ns/did/v1",
"https://w3id.org/security/suites/jws-2020/v1"
],
"id": "did:web:api.badges.ninja",
"verificationMethod": [
{
"id": "did:web:api.badges.ninja#<kid>",
"type": "JsonWebKey2020",
"controller": "did:web:api.badges.ninja",
"publicKeyJwk": { "kty": "OKP", "crv": "Ed25519", "x": "<base64url>" }
}
],
"assertionMethod": ["did:web:api.badges.ninja#<kid>"],
"authentication": ["did:web:api.badges.ninja#<kid>"]
}प्रतिक्रिया की सामग्री प्रकार application/did+json है। दस्तावेज़ कैश करने योग्य है (यह केवल कुंजी रोटेशन पर बदलता है)।
उन सत्यापनकर्ताओं के लिए जो DID रिज़ॉल्यूशन के बजाय JWK Set खोज पसंद करते हैं:
GET /.well-known/jwks.jsoncurl https://api.badges.ninja/.well-known/jwks.json{
"keys": [
{
"kty": "OKP",
"crv": "Ed25519",
"x": "<base64url>",
"kid": "<thumbprint>",
"alg": "EdDSA",
"use": "sig"
}
]
}kid सार्वजनिक कुंजी का RFC 7638 थंबप्रिंट है और DID दस्तावेज़ के verificationMethod id पर फ़्रैगमेंट से मेल खाता है।
प्रत्येक अवॉर्ड को ऊपर दी गई जारीकर्ता कुंजी के साथ हस्ताक्षरित, Open Badges 3.0 / W3C Verifiable Credential के रूप में प्राप्त किया जा सकता है।
GET /certify-badge/award/{guid}/vc| क्वेरी | परिणाम |
|---|---|
(डिफ़ॉल्ट) या ?format=jwt | हस्ताक्षरित VC-JWT (application/jwt) — किसी OB 3.0 वॉलेट में इम्पोर्ट करें। |
?format=json | अहस्ताक्षरित OpenBadgeCredential JSON (application/vc+ld+json) — निरीक्षण के लिए। |
# Signed credential (VC-JWT)
curl https://api.badges.ninja/certify-badge/award/<guid>/vc
# Human-readable credential JSON
curl "https://api.badges.ninja/certify-badge/award/<guid>/vc?format=json"क्रेडेंशियल एक ["VerifiableCredential", "OpenBadgeCredential"] टाइप्ड VC है (कॉन्टेक्स्ट https://www.w3.org/ns/credentials/v2 और OB 3.0 कॉन्टेक्स्ट)। इसका issuer.id did:web:api.badges.ninja है, और उपलब्धि, प्राप्तकर्ता पहचान (हैश किया गया ईमेल), और जारी/समाप्ति तिथियाँ अवॉर्ड से आती हैं।
टोकन एक EdDSA हस्ताक्षर वाला कॉम्पैक्ट JWS है। सत्यापित करने के लिए:
header.payload.signature में विभाजित करें।kid पढ़ें — यह DID दस्तावेज़ / JWKS में इंगित करता है।header.payload पर Ed25519 हस्ताक्षर सत्यापित करें।import crypto from "node:crypto";
const [h, p, s] = jwt.split(".");
const jwks = await (await fetch("https://api.badges.ninja/.well-known/jwks.json")).json();
const jwk = jwks.keys[0];
const pub = crypto.createPublicKey({ key: jwk, format: "jwk" });
const ok = crypto.verify(null, Buffer.from(`${h}.${p}`), pub, Buffer.from(s, "base64url"));प्राप्तकर्ता अपने सार्वजनिक क्रेडेंशियल पृष्ठ पर Download मेनू से भी क्रेडेंशियल प्राप्त कर सकते हैं (Verifiable Credential)।
हस्ताक्षर Ed25519 (EdDSA) का उपयोग करते हैं। निजी कुंजी सर्वर-साइड संरक्षित होती है और कभी प्रकट नहीं की जाती; केवल ऊपर दी गई सार्वजनिक कुंजी प्रकाशित की जाती है।
प्रत्येक क्रेडेंशियल आज भी अपने होस्टेड Open Badge 2.0 एसर्शन के माध्यम से स्वतंत्र रूप से सत्यापन योग्य है। एसर्शन, बैज, और जारीकर्ता JSON एंडपॉइंट के लिए सार्वजनिक सत्यापन देखें, और प्राप्तकर्ता-मुखी सत्यापन पृष्ठ के लिए साझाकरण और सत्यापन देखें।