Pular para o conteúdo principal

Prova de Vida (Liveness)

A funcionalidade de Prova de Vida pode ser utilizada através do SDK Santo iD, atualmente disponível para JavaScript/Node.js.

Instalação

Para instalar o SDK usando NPM, utilize o seguinte comando:

npm install santoid-sdk

Para instalar usando Yarn, utilize este comando:

yarn add santoid-sdk

Autenticação do SDK

Atualmente, o SDK suporta autenticação via contas de serviço do Santo iD. Para autenticar, crie uma conta de serviço do Santo iD na página de Contas de Serviço da plataforma.

Com a conta criada, armazene as credenciais obtidas em um arquivo no seu projeto com o nome que desejar. Em seguida, será necessário passar as credenciais para o SDK usando a função de inicialização.

É recomendado inicializar o SDK no backend do seu projeto, pois colocar o arquivo de credenciais no frontend pode expô-las aos usuários.

No seu projeto, você pode colocar o arquivo de credenciais em um local específico e expor uma variável de ambiente SANTOID_SDK_CREDENTIALS indicando a localização do arquivo.

Após certificar-se de que o usuário está autorizado de acordo com as regras de negócio do seu aplicativo, inicialize o SDK como mostrado abaixo:

import { initialize } from 'santoid-sdk/node/auth'

async function startSDK () {
const token = await initialize()
// ...
}

// Certifique-se de que o usuário está autenticado primeiro
startSDK()

Você também pode passar as credenciais como um objeto ou codificadas em base64 através da propriedade credentials do objeto de opções de inicialização.

import { initialize } from 'santoid-sdk/node/auth'

async function startSDK () {
const token = await initialize({
credentials: '...', // Conta de serviço em base64 ou o objeto da conta de serviço
})

// ...
}

// Certifique-se de que o usuário está autenticado primeiro
startSDK()

Descrição da Funcionalidade

A funcionalidade Prova de Vida permite verificar o usuário atual, avaliando se uma pessoa real está realizando atividades online através de uma rápida análise facial.

Exemplos

JavaScript

Para usar a funcionalidade de Prova de Vida, é necessário importar a função para iniciar a verificação e passar alguns valores no objeto de opções, como mostrado abaixo:

import { livenessDetection } from 'santoid-sdk/liveness'

const livenessDetectionResponse = livenessDetection({
token: 'string',
track: 'string',
customId: 'string',

getNextFrame: () => {
// ...
},

// ...
})

const { getVideoStream, stopLivenessDetection, resumeGettingFrames, pauseGettingFrames } = livenessDetectionResponse

Opções para a função livenessDetection (JavaScript)

As propriedades disponíveis para o objeto de opções da função livenessDetection estão listadas na tabela abaixo.

Nome da PropriedadeFunçãoObrigatório?
tokenToken de acesso obtido através da autenticação.Sim
trackIdentificador do processo a ser usado.Sim
customIdIdentificador personalizado para auditoria.Não
startGettingFramesFunção executada quando a captura de frames é iniciada. Se retornar um valor MediaStream, ele será salvo e fornecido através da função getVideoStream.Não
getNextFrameFunção que deve retornar frames no formato File ou Blob. Será executada várias vezes e deve sempre retornar o próximo frame.Não
stopGettingFramesFunção executada quando a captura de frames é finalizada.Não
onStartFunção executada quando a verificação é iniciada. Fornece parâmetros com um objeto contendo o stream de transmissão (videoStream), se disponível.Não
onNextStepFunção executada sempre que a validação avança para a próxima etapa. Fornece parâmetros com a etapa atual ('front', 'left', 'right', 'up' ou 'bottom').Não
onFrontStepFunção executada quando a etapa 'front' é iniciada.Não
onLeftStepFunção executada quando a etapa 'left' é iniciada.Não
onRightStepFunção executada quando a etapa 'right' é iniciada.Não
onUpStepFunção executada quando a etapa 'up' é iniciada.Não
onBottomStepFunção executada quando a etapa 'bottom' é iniciada.Não
onErrorFunção executada quando ocorre um erro. Fornece parâmetros com a instância do erro, que contém um identificador (code).Não
onSuccessFunção executada quando a verificação é concluída com sucesso. Fornece parâmetros com um objeto contendo os resultados, composto pelo ID da solicitação (livenessId) e frames de sucesso (successFrames).Não
onEndFunção executada quando a verificação é finalizada, seja com erro ou sucesso.Não

Se a função for executada em um navegador (ou ambiente JavaScript similar como WebView), fornecer uma função para retornar frames para verificação (getNextFrame) não é obrigatório, pois o SDK iniciará automaticamente a câmera e lidará com todo o processo se a função não for fornecida.

Retorno da função livenessDetection (JavaScript)

A função livenessDetection retorna alguns métodos que permitem um melhor controle da verificação.

Nome da PropriedadeFunção
getVideoStreamRetorna o stream de frames (MediaStream), se disponível.
stopLivenessDetectionInterrompe a verificação de prova de vida imediatamente e finaliza completamente.
pauseGettingFramesPausa a verificação temporariamente, podendo ser retomada posteriormente.
resumeGettingFramesRetoma a verificação, se ela foi pausada com a função pauseGettingFrames.
import { livenessDetection } from 'santoid-sdk/liveness'

const livenessDetectionResponse = livenessDetection({
token: 'string',
track: 'string',

onStart ({ videoStream }) {
const video = document.querySelector('video')
video.srcObject = videoStream
},

onNextStep () {
pauseGettingFrames()

// Simulando intervalo de sucesso
setTimeout(() => {
resumeGettingFrames()
}, 1000)
},

// ...
})

// Funções retornadas
const { getVideoStream, stopLivenessDetection, pauseGettingFrames, resumeGettingFrames } = livenessDetectionResponse

Node.js

Se desejar executar a função de prova de vida no servidor (Node.js), você deve fornecer ao SDK a função de captura de frames (getNextFrame), que deve retornar um valor no formato string, ArrayBuffer, Buffer ou Buffer[] contendo os dados do frame de imagem.

Observe que o caminho de importação da função muda para execução no servidor (Node.js), conforme mostrado no exemplo a seguir.

Opções para a função livenessDetection (Node.js)

Para Node.js, as opções são quase as mesmas usadas em JavaScript, mudando apenas a exigência de alguns valores. Abaixo estão as propriedades que mudaram. As outras permanecem as mesmas apresentadas anteriormente.

Nome da PropriedadeFunçãoObrigatório?
startGettingFramesFunção executada quando a captura de frames é iniciada. Não precisa retornar nenhum valor.Não
getNextFrameFunção que deve retornar frames no formato string, ArrayBuffer, Buffer ou Buffer[]. Será executada várias vezes e deve sempre retornar o próximo frame.Sim

Retorno da função livenessDetection (Node.js)

Os itens retornados pela função livenessDetection para Node.js são semelhantes aos retornados pela versão JavaScript, exceto pela função getVideoStream, que não é retornada.

import { livenessDetection } from 'santoid-sdk/node/liveness'

const livenessDetectionResponse = livenessDetection({
token: 'string',
track: 'string',

getNextFrame () {
// ...
},

// ...
})

// Funções retornadas
const { stopLivenessDetection, pauseGettingFrames, resumeGettingFrames } = livenessDetectionResponse

CDN

Se desejar usar a biblioteca via CDN, importando-a diretamente em uma tag script, simplesmente use o caminho especificado no exemplo abaixo.

Ao importar a biblioteca via tag script, a função livenessDetection ficará disponível através da classe SantoiDSDK.

Substitua VERSION pela versão desejada.

Neste modo de uso, as opções de configuração disponíveis são as mesmas da versão JavaScript.

<body>
<button onclick="startLiveness()">Iniciar</button>

<script src="https://cdn.jsdelivr.net/npm/santoid-sdk@1.0.4/dist/browser/liveness/index.js"></script>

<script>
function startLiveness () {
SantoiDSDK.livenessDetection({
track: 'string',
token: 'string',

// ...
})
}
</script>
</body>