Backend SDK
El Backend SDK (`@dcid/server-sdk`) permite a los desarrolladores construir servidores que gestionan operaciones de identidad. Las aplicaciones frontend se comunican con su servidor, que utiliza este SDK para interactuar con la Plataforma DCID.
Instalacion
npm install @dcid/server-sdkInicio Rapido
Inicializar el SDK
import { DCIDServerSDK } from '@dcid/server-sdk';
const sdk = new DCIDServerSDK({
apiKey: process.env.DCID_API_KEY, // Required
environment: 'prod', // 'dev' or 'prod'
timeout: 30000 // Optional
});Autenticacion
Iniciar OTP
// Send OTP to user's email
const result = await sdk.auth.registerOTP({
email: 'user@example.com'
});
// Or send to phone
const result = await sdk.auth.registerOTP({
phone: '+1234567890'
});Confirmar OTP
const tokens = await sdk.auth.confirmOTP({
email: 'user@example.com',
otp: '123456'
});
// tokens.access_token - JWT access token
// tokens.refresh_token - JWT refresh tokenRenovar Tokens
const newTokens = await sdk.auth.refreshToken({
refreshToken: tokens.refresh_token
});Claves de Cifrado
Generar Clave
const keyResult = await sdk.identity.encryption.generateKey({
did: 'did:iden3:dcid:main:...',
ownerEmail: 'user@example.com'
});
// keyResult.encryptedKey - HSM encrypted keyCredenciales
Emitir Credencial
const credential = await sdk.identity.issuer.issueCredential({
did: 'did:iden3:dcid:main:...',
credentialName: 'KYCAgeCredential',
values: {
birthday: 25,
documentType: 2
},
ownerEmail: 'user@example.com'
});
// For SIG: credential.qrCodeLink
// For MTP: credential.txId, credential.claimIdAlmacenar en IPFS
const stored = await sdk.identity.ipfs.storeCredential({
did: 'did:iden3:dcid:main:...',
credential: credentialData,
credentialType: 'ProofOfAge'
});
// stored.cid - IPFS Content IdentifierVerificacion
Iniciar Verificacion
const session = await sdk.identity.verification.verifySignIn({
credentialName: 'ProofOfAgeCredential'
});
// session.proofRequestUrl - URL to fetch proof request
// session.iden3commUrl - Deep link for wallet apps
// session.sessionId - Session identifierVerificar Callback
const verified = await sdk.identity.verification.verifyCallback({
sessionId: session.sessionId,
jwzToken: 'user-submitted-token'
});
// verified.from - User's DID
// verified.body.scope - Proof resultsManejo de Errores
import {
DCIDServerSDKError,
AuthenticationError,
NetworkError,
ServerError
} from '@dcid/server-sdk';
try {
await sdk.auth.registerOTP({ email });
} catch (error) {
if (error instanceof AuthenticationError) {
if (error.isApiKeyError) {
console.error('Invalid API key');
}
} else if (error instanceof NetworkError) {
console.error('Network error');
} else if (error instanceof ServerError) {
console.error('Server error');
}
}Proximos Pasos
- Guia de Instalacion — Instrucciones detalladas de configuracion para todas las plataformas
- Configuracion del Servidor — Ejemplo completo de implementacion de servidor
- Referencia de API — Documentacion completa de la API del SDK