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

  • Node.js 20 ou superior.
  • Uma sdkUrl emitida pelo seu backend, como no passo 6.
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, o destroy() do cleanup não está rodando.

A armadilha deste framework

O array de dependências do efeito é [options.sdkUrl], não [options]. Um objeto de opções novo a cada render remontaria o widget a cada render, matando a sessão que o titular está no meio de completar.

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.