docs(sdk): add comprehensive integration examples in sdk/examples
This commit is contained in:
@@ -0,0 +1,75 @@
|
||||
# Exemplos de Integração — CyberCore Signer Web SDK
|
||||
|
||||
Este diretório contém exemplos práticos e prontos para uso demonstrando os principais fluxos de integração do `@cybercore/signer-sdk` com aplicações web.
|
||||
|
||||
---
|
||||
|
||||
## 📁 Arquivos de Exemplo
|
||||
|
||||
| Arquivo | Descrição |
|
||||
| :--- | :--- |
|
||||
| [`01-crypto-login.js`](./01-crypto-login.js) | Autenticação segura por desafio criptográfico (Challenge-Response) sem senhas. |
|
||||
| [`02-sign-digest.js`](./02-sign-digest.js) | Assinatura desacoplada em que o navegador calcula o hash SHA-256 e o CyberCore assina apenas o digest. |
|
||||
| [`03-sign-pades.js`](./03-sign-pades.js) | Assinatura digital completa de PDF (PAdES) com selo gráfico posicionado (ICP-Brasil / Gov.br). |
|
||||
| [`04-error-handling.js`](./04-error-handling.js) | Captura e tratamento estruturado de todos os erros do protocolo CCSP/1 com guia acionável. |
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Como Executar
|
||||
|
||||
### Pré-requisitos
|
||||
1. Agente desktop **CyberCore Signer** em execução na máquina (`127.0.0.1:21325`).
|
||||
2. Node.js 18+ instalado.
|
||||
|
||||
### Execução direta via Node.js
|
||||
Como o pacote usa módulos ES (`"type": "module"`), você pode testar diretamente com:
|
||||
|
||||
```bash
|
||||
# Executar exemplo de login
|
||||
node examples/01-crypto-login.js
|
||||
|
||||
# Executar exemplo de assinatura de digest
|
||||
node examples/02-sign-digest.js
|
||||
|
||||
# Executar exemplo de assinatura PAdES com selo
|
||||
node examples/03-sign-pades.js
|
||||
|
||||
# Executar exemplo de tratamento de erros
|
||||
node examples/04-error-handling.js
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 💡 Uso em Projetos Frontend (React, Vue, Angular, Svelte, Vanilla)
|
||||
|
||||
Instale o pacote a partir do seu registry npm privado:
|
||||
```bash
|
||||
npm install @cybercore/signer-sdk
|
||||
```
|
||||
|
||||
Importe os métodos e tipos em qualquer componente ou serviço web:
|
||||
```typescript
|
||||
import { CyberCoreSigner, AgentNotRunningError } from '@cybercore/signer-sdk';
|
||||
|
||||
const signer = new CyberCoreSigner({
|
||||
applicationName: 'Meu Sistema Web'
|
||||
});
|
||||
|
||||
async function assinarDocumento(arquivoPdf: File, certId: string) {
|
||||
try {
|
||||
const resultado = await signer.signPdfDocument({
|
||||
pdf: arquivoPdf,
|
||||
certificateId: certId,
|
||||
position: 'BOTTOM_RIGHT',
|
||||
sealThemeId: 'icp-brasil'
|
||||
});
|
||||
|
||||
// Baixa o documento assinado no navegador
|
||||
resultado.download('documento_assinado.pdf');
|
||||
} catch (err) {
|
||||
if (err instanceof AgentNotRunningError) {
|
||||
alert(err.actionableGuidance);
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
Reference in New Issue
Block a user