@neofaceid/web-sdk 1.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,297 @@
1
+ # NeoFace ID SDK Web
2
+
3
+ SDK para captura e reconhecimento facial em aplicações web.
4
+
5
+ ## Instalação
6
+
7
+ ```bash
8
+ npm install @neofaceid/web-sdk
9
+ ```
10
+
11
+ ## Uso Básico
12
+
13
+ ```javascript
14
+ import { start } from '@neofaceid/web-sdk';
15
+
16
+ // Inicialize o SDK com seu token de aplicação
17
+ start('seu-token-de-aplicacao', {
18
+ onSuccess: (user) => {
19
+ console.log('Usuário autenticado:', user);
20
+ // user contém: { name, email, documentId }
21
+ },
22
+ onError: (code, message) => {
23
+ console.error('Erro:', code, message);
24
+ }
25
+ });
26
+ ```
27
+
28
+ ## Versão
29
+
30
+ O SDK segue o padrão de versionamento semântico (SemVer):
31
+
32
+ ```javascript
33
+ import { VERSION, RELEASE_DATE } from '@neofaceid/web-sdk';
34
+
35
+ console.log(`Usando NeoFace ID SDK versão ${VERSION} (lançada em ${RELEASE_DATE})`);
36
+ ```
37
+
38
+ ### Histórico de Versões
39
+
40
+ | Versão | Data | Mudanças |
41
+ |--------|------|----------|
42
+ | 1.0.0 | 2023-06-15 | Lançamento inicial do SDK |
43
+
44
+ ## Parâmetros
45
+
46
+ ### applicationToken (string)
47
+ Token de autenticação da sua aplicação. Obtenha este token no painel de administração do NeoFace ID.
48
+
49
+ ### callbacks (object)
50
+
51
+ #### onSuccess (function)
52
+ Chamado quando o reconhecimento facial é bem-sucedido.
53
+ - Parâmetros: `user` (object) - Contém `name`, `email` e `documentId` do usuário reconhecido.
54
+
55
+ #### onError (function)
56
+ Chamado quando ocorre um erro durante o processo.
57
+ - Parâmetros:
58
+ - `code` (string) - Código do erro
59
+ - `message` (string) - Mensagem descritiva do erro
60
+
61
+ ### Códigos de Erro
62
+
63
+ | Código | Descrição |
64
+ |--------|-----------|
65
+ | `TOKEN_VALIDATION_ERROR` | Token de aplicação inválido ou expirado |
66
+ | `NO_CAMERA` | Câmera não disponível ou permissão negada |
67
+ | `FACE_NOT_DETECTED` | Nenhum rosto detectado na imagem |
68
+ | `MULTIPLE_FACES` | Múltiplos rostos detectados na imagem |
69
+ | `FACE_NOT_CENTERED` | Rosto não está centralizado no frame |
70
+ | `LIVENESS_CHECK_FAILED` | Verificação de vivacidade falhou |
71
+ | `RECOGNITION_FAILED` | Falha no reconhecimento facial |
72
+ | `NETWORK_ERROR` | Erro de conexão com o servidor |
73
+ | `TIMEOUT` | Tempo limite excedido durante o processo |
74
+
75
+ ## Customização
76
+
77
+ O modal de captura facial pode ser customizado através de CSS. Adicione as seguintes classes ao seu CSS:
78
+
79
+ ```css
80
+ /* Container principal */
81
+ #neoface-modal-container {
82
+ /* Estilos para o container */
83
+ }
84
+
85
+ /* Modal */
86
+ #neoface-modal-container .modal {
87
+ /* Estilos para o modal */
88
+ }
89
+
90
+ /* Botões */
91
+ #neoface-modal-container .button {
92
+ /* Estilos para os botões */
93
+ }
94
+
95
+ /* Mensagens */
96
+ #neoface-modal-container .message {
97
+ /* Estilos para as mensagens */
98
+ }
99
+
100
+ /* Guia de posicionamento */
101
+ #neoface-modal-container .guide {
102
+ /* Estilos para o guia de posicionamento */
103
+ }
104
+ ```
105
+
106
+ ## Requisitos de Segurança
107
+
108
+ ### HTTPS
109
+ O SDK requer uma conexão HTTPS para funcionar. Em ambiente de desenvolvimento, você pode usar `localhost`.
110
+
111
+ ### Permissões
112
+ O SDK solicita permissão para acessar a câmera do dispositivo. Esta permissão é essencial para o funcionamento do reconhecimento facial.
113
+
114
+ ### HSTS
115
+ Recomendamos configurar HTTP Strict Transport Security (HSTS) no servidor para garantir que todas as conexões sejam feitas via HTTPS.
116
+
117
+ ### Privacidade
118
+ O SDK não armazena dados biométricos localmente. Todas as imagens são processadas em tempo real e descartadas após o reconhecimento.
119
+
120
+ ## Notas de Performance
121
+
122
+ - **Resolução Adaptativa**: O SDK ajusta automaticamente a resolução da câmera com base nas capacidades do dispositivo.
123
+ - **Compressão JPEG**: As imagens são comprimidas antes do envio para otimizar o uso de banda.
124
+ - **Timeout**: O processo de reconhecimento tem um timeout de 10 segundos para evitar que o usuário fique aguardando indefinidamente.
125
+
126
+ ## Compatibilidade
127
+
128
+ ### Navegadores Suportados
129
+ - Chrome 60+
130
+ - Firefox 55+
131
+ - Safari 11+
132
+ - Edge 79+
133
+
134
+ ### Responsividade
135
+ O SDK é totalmente responsivo e funciona em dispositivos desktop e mobile. Em dispositivos móveis, o modal ocupa a tela inteira para uma melhor experiência do usuário.
136
+
137
+ ## Integração com .NET Framework
138
+
139
+ O NeoFace ID SDK Web pode ser facilmente integrado em aplicações web desenvolvidas com .NET Framework 4.8 ou superior. Siga os passos abaixo para implementar a autenticação facial em seu projeto ASP.NET:
140
+
141
+ ### 1. Instalação via NuGet
142
+
143
+ Adicione o pacote ao seu projeto .NET:
144
+
145
+ ```powershell
146
+ Install-Package NeoFaceId.WebSdk
147
+ ```
148
+
149
+ Ou adicione a referência ao seu arquivo `.csproj`:
150
+
151
+ ```xml
152
+ <PackageReference Include="NeoFaceId.WebSdk" Version="1.0.2" />
153
+ ```
154
+
155
+ ### 2. Configuração no Web.config
156
+
157
+ Adicione a configuração do token no seu arquivo `Web.config`:
158
+
159
+ ```xml
160
+ <configuration>
161
+ <appSettings>
162
+ <add key="NeoFaceId:ApplicationToken" value="seu-token-de-aplicacao" />
163
+ </appSettings>
164
+ </configuration>
165
+ ```
166
+
167
+ ### 3. Implementação no Código
168
+
169
+ #### No Controller (C#)
170
+
171
+ ```csharp
172
+ using System.Web.Mvc;
173
+ using NeoFaceId.WebSdk;
174
+
175
+ public class AuthenticationController : Controller
176
+ {
177
+ private readonly string _applicationToken;
178
+
179
+ public AuthenticationController()
180
+ {
181
+ _applicationToken = System.Configuration.ConfigurationManager.AppSettings["NeoFaceId:ApplicationToken"];
182
+ }
183
+
184
+ public ActionResult Index()
185
+ {
186
+ return View();
187
+ }
188
+
189
+ [HttpPost]
190
+ public JsonResult AuthenticateUser(string name, string email, string documentId)
191
+ {
192
+ // Processar a autenticação do usuário
193
+ // Este método é chamado após o reconhecimento facial bem-sucedido
194
+
195
+ // Exemplo: Criar sessão do usuário
196
+ Session["UserName"] = name;
197
+ Session["UserEmail"] = email;
198
+ Session["UserDocumentId"] = documentId;
199
+
200
+ return Json(new { success = true });
201
+ }
202
+ }
203
+ ```
204
+
205
+ #### Na View (Razor)
206
+
207
+ ```html
208
+ @{
209
+ ViewBag.Title = "Autenticação Facial";
210
+ }
211
+
212
+ <div class="container">
213
+ <h2>Autenticação Facial</h2>
214
+
215
+ <button id="startFaceAuth" class="btn btn-primary">Iniciar Autenticação Facial</button>
216
+
217
+ <div id="authResult"></div>
218
+ </div>
219
+
220
+ @section Scripts {
221
+ <script src="~/Scripts/neoface-id-sdk.js"></script>
222
+ <script>
223
+ document.getElementById('startFaceAuth').addEventListener('click', function() {
224
+ // Inicializar o SDK com o token da aplicação
225
+ NeoFaceId.start('@System.Configuration.ConfigurationManager.AppSettings["NeoFaceId:ApplicationToken"]', {
226
+ onSuccess: function(user) {
227
+ // Enviar dados do usuário para o servidor
228
+ $.ajax({
229
+ url: '@Url.Action("AuthenticateUser", "Authentication")',
230
+ type: 'POST',
231
+ data: {
232
+ name: user.name,
233
+ email: user.email,
234
+ documentId: user.documentId
235
+ },
236
+ success: function(response) {
237
+ if (response.success) {
238
+ document.getElementById('authResult').innerHTML =
239
+ '<div class="alert alert-success">Autenticação bem-sucedida!</div>';
240
+ // Redirecionar para a página principal após autenticação
241
+ setTimeout(function() {
242
+ window.location.href = '@Url.Action("Index", "Home")';
243
+ }, 1500);
244
+ }
245
+ },
246
+ error: function() {
247
+ document.getElementById('authResult').innerHTML =
248
+ '<div class="alert alert-danger">Erro ao processar autenticação no servidor.</div>';
249
+ }
250
+ });
251
+ },
252
+ onError: function(code, message) {
253
+ document.getElementById('authResult').innerHTML =
254
+ '<div class="alert alert-danger">Erro: ' + message + '</div>';
255
+ }
256
+ });
257
+ });
258
+ </script>
259
+ }
260
+ ```
261
+
262
+ ### 4. Personalização do Modal
263
+
264
+ Para personalizar a aparência do modal de captura facial, adicione os estilos CSS ao seu arquivo `Site.css` ou ao layout principal:
265
+
266
+ ```css
267
+ /* Estilos para o modal de captura facial */
268
+ #neoface-modal-container .modal {
269
+ border-radius: 8px;
270
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
271
+ }
272
+
273
+ #neoface-modal-container .button {
274
+ background-color: #007bff;
275
+ color: white;
276
+ border: none;
277
+ padding: 8px 16px;
278
+ border-radius: 4px;
279
+ cursor: pointer;
280
+ }
281
+
282
+ #neoface-modal-container .button:hover {
283
+ background-color: #0069d9;
284
+ }
285
+ ```
286
+
287
+ ### 5. Considerações de Segurança
288
+
289
+ - Sempre valide os dados recebidos do cliente no servidor
290
+ - Utilize HTTPS para todas as comunicações
291
+ - Armazene o token de aplicação de forma segura (nunca no código-fonte)
292
+ - Considere implementar rate limiting para evitar abusos
293
+ - Implemente logs de auditoria para rastrear tentativas de autenticação
294
+
295
+ ## Licença
296
+
297
+ MIT