Skip to main content
Ao final deste guia o fluxo de verificação abre num app React, montando uma única vez por sdkUrl mesmo em desenvolvimento. O mount() é imperativo de propósito, então o único lugar onde ele cabe num app React é dentro de um efeito. É uma porta estreita, e é fácil de errar exatamente do jeito que o modo de desenvolvimento do React foi feito para pegar: o <StrictMode> invoca cada efeito duas vezes, e uma montagem que não é idempotente monta o widget duas vezes ou destrói a sessão que acabou de criar.

Pré-requisitos

O wrapper @legitimuz/websdk-react, com useLegitimuz e <LegitimuzWidget />, publica no npm no lançamento. O hook abaixo tem a mesma forma, então trocar por um import é mudança de uma linha.

Monte o fluxo

1

Carregue o SDK

index.html
Antes do bundle. O script registra window.Legitimuz.
2

Declare o global

O build de CDN não traz tipos. Declare o que você usa:
src/legitimuz.d.ts
3

Escreva o hook

src/useLegitimuz.ts
4

Use no componente

src/VerificationWidget.tsx
src/App.tsx
5

Configure a sdkUrl

.env
O .env fica fora do controle de versão. A sdkUrl carrega a credencial da verificação no fragmento, nunca comite um valor real.

Confira que funcionou

A primeira tela aparece e o status vira pronto. Em desenvolvimento, com <StrictMode> ligado, o widget aparece uma vez. Se aparecerem dois iframes, confira se o destroy() do cleanup está sendo chamado.

Boas práticas

Dependa da sdkUrl, não do objeto de opções

O array de dependências do efeito é [options.sdkUrl]. Assim o widget monta uma vez por sessão e permanece estável entre renders, mesmo quando o objeto de opções é recriado pelo componente pai.

Próximo passo

Next.js

O mesmo hook, com o cuidado extra que o App Router exige.

Opções do mount()

Aparência, idioma, timeout e todos os callbacks.