O que é o FACEIO?
FACEIO é uma plataforma de autenticação facial da PixLab ↗ que permite cadastrar e autenticar usuários pelo rosto em um aplicativo web sem exigir senhas, códigos OTP ou sensores biométricos dedicados no fluxo do FACEIO. O serviço usa uma webcam comum ou a câmera de um smartphone em navegadores modernos compatíveis.
A biblioteca do lado do cliente é fio.js. Ela oferece dois métodos principais: enroll() para cadastro e authenticate() para login, além do utilitário restartSession() para fluxos com várias operações. O FACEIO coordena o fluxo de autenticação, enquanto o mecanismo de reconhecimento facial escolhido pelo proprietário do aplicativo realiza a comparação facial e gerencia os hashes biométricos. Seu aplicativo recebe uma Promise resolvida com o Facial ID e o payload
associado durante o cadastro.
Está começando com o FACEIO?
Comece pelo Guia de configuração em 5 minutos para criar seu primeiro aplicativo e obter o Public ID no FACEIO Console ↗.
Integração da biblioteca fio.js
fio.js funciona em navegadores modernos compatíveis com uma webcam comum ou a câmera de um smartphone, sem exigir um sensor biométrico dedicado. A biblioteca JavaScript é independente de framework e pode ser usada com React, Vue, Angular, Next.js ou JavaScript sem framework.
1
Importar fio.js ao seu site
Cole o trecho abaixo antes da tag de fechamento </body> em qualquer página que ofereça autenticação facial. Uma biblioteca é carregada pela
CDN ↗
do FACEIO. A hospedagem própria não é compatível, portanto as integrações recebem as atualizações suportadas do fio.js pela CDN do FACEIO.
-
Sempre carregue
fio.jspela cdn.faceio.net ↗. A hospedagem própria não é compatível. - Prefere uma ferramenta de build? Instale o pacote NPM oficial ↗.
- Os guias para React, Vue, Angular e Next.js estão na seção Tutoriais da comunidade.
2
Crie uma instância do faceIO
Crie uma instância de faceIO() com o Public ID do seu aplicativo. Esse identificador está disponível no Application Manager do FACEIO Console ↗.
Antes de continuar, confirme que você:
- Criou um aplicativo FACEIO e selecionou um mecanismo de reconhecimento facial no FACEIO Console ↗.
- Revisou as opções de segurança (política de PIN Code e restrições de domínio) no guia de práticas recomendadas de segurança.
- Revisou as recomendações de privacidade, incluindo o tratamento dos Facial IDs, conforme o guia de práticas recomendadas de privacidade.
3 Inicie o Widget
Com fio.js carregado e a instância faceIO() pronta, inicie o reconhecimento facial chamando um dos métodos oferecidos pela classe:
Cadastra um novo usuário por reconhecimento facial. É o equivalente sem senha de um cadastro tradicional.
Autentica um usuário já cadastrado. É o equivalente sem senha de um login tradicional.
Modelo de referência
O Modelo HTML inclui uma implementação de referência com os dois métodos e tratamento completo de erros.
enroll() - Cadastrar novo usuário
Inicia o Widget do FACEIO para cadastrar um novo usuário por reconhecimento facial. É o equivalente sem senha de um cadastro tradicional. Quando concluído, retorna uma Promise resolvida com um objeto
userInfo que contém o Facial ID exclusivo do usuário, o timestamp do cadastro e estimativas demográficas de gênero e idade.
Sintaxe
promise = faceio.enroll({ parameters })
enrol()
register()
record()
userInfo quando a operação é concluída, ou rejeitada com um fioErrCode em caso de falha.
Descrição
Quando chamado, o Widget do FACEIO solicita o consentimento do usuário quando necessário, pede acesso à câmera e envia a captura ao mecanismo de reconhecimento facial escolhido pelo proprietário do aplicativo.
O FACEIO não armazena, manipula nem acessa hashes biométricos. O mecanismo de reconhecimento facial selecionado cria e gerencia os hashes biométricos usados na comparação, enquanto sua integração recebe o Facial ID resultante e os dados do cadastro.
payload associa dados arbitrários (e-mail, userId, nome etc.) ao usuário cadastrado. Esses dados são retornados após cada autenticação concluída
desse usuário. Tamanho máximo: 16 KB. Codifique em Base64 conteúdos binários ou não ASCII.
Parâmetros
Aceita um único objeto opcional. Todas as propriedades são opcionais:
Valor retornado
Uma Promise resolvida com um objeto userInfo quando concluída, ou rejeitada com um código de erro em caso de falha:
Exemplo
- Armazene o
facialIdretornado no banco de dados como chave de autenticação exclusiva do usuário. - O
payloadé retornado sem alterações em cada chamada futura deauthenticate()para esse usuário. - Consulte o modelo HTML para ver uma referência funcional completa.
authenticate() - Autenticar usuário
Inicia o Widget do FACEIO para verificar um usuário já cadastrado. É o equivalente sem senha de um login tradicional. Quando concluído, retorna uma Promise resolvida com um objeto
userData que contém o Facial ID do usuário, o timestamp da autenticação e o payload associado durante o cadastro.
Sintaxe
promise = faceio.authenticate({ parameters })
auth()
recognize()
identify()
userData quando a operação é concluída, ou rejeitada com um fioErrCode em caso de falha.
Descrição
Quando chamado, o Widget do FACEIO solicita acesso à câmera e compara a captura com o índice facial de usuários cadastrados no aplicativo. Uma duração depende da permissão da câmera, da qualidade da imagem, das verificações de liveness, da rede e da configuração do fluxo.
Uma comparação facial é realizada pelo mecanismo de reconhecimento facial selecionado. O FACEIO não armazena, manipula nem acessa hashes biométricos, e sua integração no cliente trabalha com o resultado de autenticação retornado.
payload associado durante enroll() é retornado sem alterações dentro do objeto userData
resolvido. Valide o facialId retornado e aplique suas próprias regras de autorização no servidor antes de criar uma sessão no site ou aplicativo web.
Parâmetros
Aceita um único objeto opcional. Todas as propriedades são opcionais:
Valor retornado
Uma Promise resolvida com um objeto userData quando concluída, ou rejeitada com um código de erro em caso de falha:
Exemplo
- Compare o
facialIdretornado com o banco de dados antes de autorizar a sessão. - O
payloaddo cadastro, como e-mail ou userId, está disponível emuserData.payload. Mesmo assim, valide a sessão no backend. - Consulte o modelo HTML para ver uma referência completa.
restartSession() - Reiniciar sessão
Reinicia a sessão atual do FACEIO para permitir uma nova chamada de
enroll() ou
authenticate()
na mesma página sem recarregá-la. É útil em terminais compartilhados, pontos de check-in ou outros fluxos em que várias pessoas usam a mesma sessão do navegador em sequência.
Sintaxe
boolean = faceio.restartSession()
true quando a sessão é reiniciada e está pronta para uma nova operação; caso contrário, false.Descrição
Quando enroll() ou authenticate() é resolvido ou rejeitado, a sessão interna do FACEIO é marcada como consumida. Qualquer chamada posterior a um desses métodos na mesma instância faceIO sem reiniciá-la será rejeitada imediatamente com fioErrCode.SESSION_IN_PROGRESS.
Chamar restartSession() limpa esse estado e deixa a instância pronta para outra operação de reconhecimento.
- Quiosque ou terminal compartilhado - Permite que vários usuários se autentiquem em sequência no mesmo dispositivo sem recarregar a página.
- Fluxo de cadastro seguido de autenticação - Cadastre um usuário e autentique-o na mesma página depois de reiniciar a sessão.
- Nova tentativa após um erro - Reinicie após uma falha para permitir outra tentativa sem atualizar a página.
faceIO. Se você criou várias instâncias faceIO (não recomendado), cada uma mantém seu próprio estado de sessão.Recurso Premium
Uma geração dinâmica de sessões está disponível apenas nos planos Premium. Atualize seu aplicativo pelo FACEIO Console ↗ para usar esse recurso.
Valor retornado
true - A sessão foi reiniciada e a instância está pronta para uma nova chamada de enroll() ou authenticate().false quando não foi possível criar uma nova sessão.Códigos de erro - fioErrCode
Quando enroll() ou authenticate() falham, a Promise é rejeitada com um valor numérico fioErrCode. Trate os erros avaliando esse valor no manipulador .catch(). Para restartSession(), verifique o booleano retornado (true ou false).
Prática recomendada para tratamento de erros
Implemente o tratamento de erros com mensagens claras para o usuário. Use uma instrução switch ou uma cadeia if-else para tratar cada código e orientar o usuário, por exemplo oferecendo o cadastro quando fioErrCode.UNRECOGNIZED_FACE for retornado.
Modelo HTML
Uma implementação de referência com
enroll() e
authenticate()
e tratamento de erros. Use-a como ponto de partida para sua integração.
Importante
Substitua app-public-id pelo Public ID real do seu aplicativo obtido no FACEIO Console ↗.
Modelo de referência
Observações de implementação
-
O
enroll()da linha 31 inclui umpayloadcom dados de exemplo. Ajuste-o às necessidades do seu site ou aplicativo web. -
Armazene o
facialIdno banco de dados e associe-o à conta do usuário para autenticações futuras. - O manipulador da linha 60 cobre os códigos de erro comuns. Ajuste as mensagens ao tom do seu site ou aplicativo web.
-
Esse modelo exige um servidor HTTP em execução.
fio.jsnão pode ser carregado diretamente pelo sistema de arquivos local devido às restrições de segurança do navegador. - Revise o guia de práticas recomendadas de segurança e o guia de práticas recomendadas de privacidade antes da implantação em produção.
Tutoriais da comunidade
Use estes guias da comunidade para implementar fio.js com React, Vue, Angular, Next.js ou JavaScript sem framework e consultar exemplos para projetos React Native e Flutter.
Pacote oficial para ferramentas de build JavaScript e projetos baseados em frameworks.
Ver no NPMConsulte respostas, compartilhe experiências e converse com outros desenvolvedores do FACEIO.
Abrir o fórumGuia sobre login sem senha, verificação de idade e detecção de liveness em uma única solução.
Ver tutorialCrie um fluxo de presença com FACEIO e JavaScript sem framework.
Ver tutorialCrie com Next.js um chatbot de planejamento de viagens com autenticação facial.
Ver tutorialAdicione reconhecimento facial a um aplicativo React com Tailwind CSS.
Ver tutorialTutorial para implementar autenticação facial do FACEIO em um aplicativo Vue.js.
Ver tutorialGuia do freeCodeCamp para adicionar autenticação por reconhecimento facial a um aplicativo React.
Ver tutorialConsulte padrões modernos de autenticação para aplicativos web com reconhecimento facial.
Ver tutorialUm guia detalhado sobre implementação do FACEIO e práticas recomendadas.
Ver tutorialCrie um fluxo de login com reconhecimento facial usando JavaScript sem framework.
Ver tutorialCrie um sistema de controle de presença com reconhecimento facial do FACEIO.
Ver tutorialCompartilhe um tutorial de implementação do FACEIO com a comunidade de desenvolvedores.
Fale conosco