SDK JavaScript Liveness
v1.2.8
A partir da release 1.2.8 (08/10/2024), foi implementado um novo método opcional de autenticação via token resgatado da autenticação via Plataforma Data Trust. Recomenda-se que todos façam a alteração, pois, futuramente, será o único método. Para mais informações, confira a seção Exemplos.
Como obter o accessToken e transactionId?
accessToken
: Faça a autenticação seguindo as instruções da API DataTrust e obtenha otoken
do retorno.transactionId
: Crie uma transação seguindo as instruções da API DataTrust e obtenha oid
do retorno.
Introdução
O objetivo deste manual é fornecer todas as informações necessárias para instalação e uso da ferramenta nos aplicativos desenvolvidos para plataforma JavaScript.
Este SDK realiza a captura de faces para processamento de Liveness pela ClearSale. Todas as informações coletadas são dados relacionados apenas ao dispositivo, sem relação ao aplicativo integrado.
As informações de captura de imagem dependem da permissão concedida pelo usuário no momento de captura para dar prosseguimento à coleta de prova de vida.
Requisitos mínimos
- Espaço de armazenamento: ~9mb
- Dependências:
- Node
- .npmrc (com chaves do repositório privado)
Compatibilidades
Mobile Browser - Versões mínimas dos navegadores:
- Android Chrome 90
- iOS Safari 14
- iOS 14.4+ Chrome 90
Desktop Browser - Versões mínimas dos navegadores:
- Chrome 85
- Firefox 94
- Safari 11
- Edge 95
Instalação do Pacote
Npm
O pacote está disponível em um repositório privado e para sua utilização você deve adicionar um arquivo com o nome \***\*.npmrc
na raiz do projeto (no mesmo nível do seu arquivo package.json
) com o seguinte conteúdo:
@studio:registry=https://pkgs.dev.azure.com/CS-Package/ID-Lab-PackagesSDK/_packaging/packages/npm/registry/
registry=https://registry.npmjs.org
always-auth=true
; begin auth token
pkgs.dev.azure.com/CS-Package/ID-Lab-PackagesSDK/_packaging/packages/npm/:username= "" //CS-Package
pkgs.dev.azure.com/CS-Package/ID-Lab-PackagesSDK/_packaging/packages/npm/:_password= "" //base64PAT
pkgs.dev.azure.com/CS-Package/ID-Lab-PackagesSDK/_packaging/packages/npm/:email= "" //[email protected]
; end auth token
Todas essas informações serão disponibilizadas pela ClearSale juntamente das credenciais.
Após a configuração do arquivo execute o comando:
npm install @studio/csliveness@VERSION-hml --save --save-exact
npm install @studio/csliveness@VERSION --save --save-exact
Configuração
Caso não tenha sido solicitado anteriormente, o SDK solicita a permissão para o uso da câmera que deve ser concedida pelo usuário. Caso o usuário não permita o uso, não é possível continuar com o fluxo de captura.
Classes
CSLiveness
Descrição
CSLiveness
é a classe responsável pela inicialização do SDK.
Construtores
Esta classe possui dois construtores públicos. São eles:
[RECOMENDADO] Construtor que utiliza o token da Plataforma Data Trust (08/10/2024)
Parâmetros | Descrição |
---|---|
token | String que serve para autenticação. Este parâmetro é obtido realizando uma autenticação na Plataforma Data Trust. Para mais informações, acesse esse link. |
transactionId | String que identifica a transação. Este parâmetro é obtido na geração da transaction na Plataforma Data Trust. Para mais informações, acesse esse link. |
path | Pasta com configuração disponibilizada pela ClearSale. Por padrão ela também é incluída no pacote npm junto à pasta dist/core-sdk . |
[LEGADO] Construtor das versões 1.2.7 ou inferior
Parâmetros | Descrição |
---|---|
clientId | ClientId identifica o cliente junto à ClearSale, este valor é fornecido pela ClearSale. |
clientSecret | ClientSecret serve como token de autenticação do cliente. |
path | Pasta com configuração disponibilizada pela ClearSale. Por padrão ela também é incluida no pacote npm junto à pasta dist/core-sdk . |
identifierId (opcional) | IdentifierId um id que representa a transação do lado do Cliente. Se usado, ele pode ser enviado para nós para melhorar nosso suporte. |
cpf (opcional) | CPF do usuário que está fazendo o Liveness. Pode ser enviado tanto no formato apenas números, nesse caso uma string com 11 caracteres apenas numéricos, ou no formato xxx.xxx.xxx-xx. Em ambos os casos é preciso que seja um cpf válido (ou seja, que esteja dentro das regras da Receita Federal). |
Métodos
Nome do método | Descrição |
---|---|
initialize() :void | Método necessário a ser chamado antes de realizar a abertura da biblioteca. |
open() :void | Método responsável por iniciar a captura da imagem e envio para validação. |
on(eventName: String, callback: function) :void | Método usado para gerenciar os callbacks dos listeners. |
Eventos
Os eventos que poderão ser mapeados são:
Nome do evento | Descrição | Parâmetros de Resultado |
---|---|---|
onReady | Esse evento é disparado no momento em que o SDK fica disponível para realizar o método open. | - |
onCompleted | Esse evento é disparado quando a captura é finalizada e a imagem foi validada. | {image: string, sessionId: string} |
onError | Evento disparado quando por algum motivo o SDK foi fechado. | tipoErro: string |
Tipos de Erros
Valores das Strings que podem ser retornadas no campo tipoErro
para o callback do evento onError
.
Nome do evento | Descrição |
---|---|
CameraNotEnabled | Sessão cancelada pois a câmera não está habilitada. |
CameraNotRunning | Sessão cancelada pois não foi encontrada nenhuma câmera ativa. |
ContextSwitch | Sessão cancelada porque o app foi colocado em segundo plano ou o browser saiu do foco do usuário. |
DocumentNotReady | SDK não pode ser renderizado pois o DOM não está pronto. |
IFrameNotAllowedWithoutPermission | SDK aberto em um iframe sem permissão. |
InitializationNotCompleted | Sessão cancelada pois inicialização não foi completada. |
LandscapeModeNotAllowed | Sessão não iniciada pois o usuário está com a orientação do aparelho no modo landscape. |
LockedOut | Sessão foi cancelada porque a câmera não estava habilitada. |
OrientationChangeDuringSession | Sessão cancelada pois o usuário mudou de orientação o celular durante o fluxo. |
ResourcesCouldNotBeLoadedOnLastInit | SDK não conseguiu carregar os recursos. |
SessionInProgress | Sessão cancelada pois existe outra em aberto. |
StillLoadingResources | FaceTec SDK está carregando os recursos. |
Timeout | Sessão cancelada porque durou um tempo mais do que o necessário. |
UnknownInternalError | Erros internos não planejados. |
UserCancelled | Sessão cancelada pelo usuário que clicou no botão de fechar. |
UserCancelledFromNewUserGuidance | Usuário pressionou o botão cancelar durante a orientação ao usuário. |
UserCancelledFromRetryGuidance | Usuário pressionou o botão cancelar durante uma nova tentativa de orientação ao usuário. |
UserCancelledFullScreenMode | A sessão foi cancelada pois o modo tela cheia no iframe foi detectado. |
UserCancelledWhenAttemptingToGetCameraPermissions | Usuário pressionou o botão cancelar no navegador ao tentar obter a permissão da câmera durante a orientação para novos usuários. |
Exemplos
Para inicializar o SDK, crie uma instância da classe CSLiveness
na tela que você deseja que seja iniciado a captura:
import * as CSLiveness from '@studio/csliveness';
sdk = new CSLiveness.Instance(
{
accessToken: String, //Obtido via https://datatrustapihml.clearsale.com.br/v1/authentication OU https://datatrustapi.clearsale.com.br/v1/authentication
transactionId: String, //Obtido via https://datatrustapihml.clearsale.com.br/v1/transaction OU https://datatrustapi.clearsale.com.br/v1/transaction
pathResources: String, //`dist/core-sdk` OU path desejado
//clientID: "",
//clientSecret: "",
//identifierId: '',
//cpf: '',
debug: Bool
}
)
sdk.on('onReady', () => {
//Apenas após o processo de loading do sdk estiver finalizado que se pode iniciar a captura,
//caso tenha iniciado alguma tela de loading ela pode ser finalizada aqui dentro.
})
sdk.on('onCompleted', (successResult) => {
//Neste callback será enviado a imagem capturada e o sessionId
//que deverá ser armazenado para futura consulta da imagem capturada.
})
sdk.on('onError', (tipo) => {
//Caso aconteça algum erro será chamado esse callback informando o erro que ocorreu.
})
sdk.initialize()
import * as CSLiveness from '@studio/csliveness';
sdk = new CSLiveness.Instance(
{
//accessToken: String, //Obtido via https://datatrustapihml.clearsale.com.br/v1/authentication OU https://datatrustapi.clearsale.com.br/v1/authentication
//transactionId: String, //Obtido via https://datatrustapihml.clearsale.com.br/v1/transaction OU https://datatrustapi.clearsale.com.br/v1/transaction
//pathResources: String //`dist/core-sdk` OU path desejado
clientID: "",
clientSecret: "",
identifierId: "",
cpf: "",
debug: Bool
}
)
sdk.on('onReady', () => {
//Apenas após o processo de loading do sdk estiver finalizado que se pode iniciar a captura,
//caso tenha iniciado alguma tela de loading ela pode ser finalizada aqui dentro.
})
sdk.on('onCompleted', (successResult) => {
//Neste callback será enviado a imagem capturada e o sessionId
//que deverá ser armazenado para futura consulta da imagem capturada.
})
sdk.on('onError', (tipo) => {
//Caso aconteça algum erro será chamado esse callback informando o erro que ocorreu.
})
sdk.initialize()
Após a emissão do evento onReady
, você de fato pode chamar o método open
para iniciar o processo de captura:
sdk.open()
Detalhes de privacidade
Uso de dados
Todas as informações coletadas pelo SDK da ClearSale são com exclusiva finalidade de prevenção à fraude e proteção ao próprio usuário, aderente à política de segurança e privacidade das plataformas Google e Apple e à LGPD. Por isso, estas informações devem constar na política de privacidade do aplicativo.
Tipo de dados coletados
O SDK da ClearSale coleta as seguintes informações do dispositivo :
- Características físicas do dispositivo/ hardware (Como tela, modelo, nome do dispositivo);
- Características de software (Como versão, idioma, build, controle parental);
- Informações da câmera;
Updated 2 months ago