--- title: SDK Vue --- # SDK Vue Componente Vue 3 oficial para o CAPTCHA da CaptchaLa — publicado como [`@captcha-la/vue`](https://www.npmjs.com/package/@captcha-la/vue). ## Demonstração ao vivo ::: tip 📦 [demo-v1.captcha.la/vue](https://demo-v1.captcha.la/vue/) — demonstração executável com os quatro modos de produto. Código-fonte: [Captcha-La/vue-example](https://github.com/Captcha-La/vue-example). ::: ## Instalação ```bash npm install @captcha-la/vue # or yarn add @captcha-la/vue # or pnpm add @captcha-la/vue ``` Dependência de peer: `vue@^3.2.0`. ## Início rápido ```vue ``` ## Props | Prop | Tipo | Padrão | Descrição | |------|------|---------|-------------| | `appKey` | `string` | *obrigatório* | Chave da aplicação CaptchaLa | | `serverToken` | `string` | - | Token de desafio emitido pelo servidor, de uso único. Obrigatório quando a aplicação tem `server_token_required=true`. | | `product` | `'popup' \| 'float' \| 'embed' \| 'bind'` | `'popup'` | Modo de exibição | | `action` | `string` | `'default'` | Identificador da action (ex.: `login`, `register`, `checkout`) | | `lang` | `string` | `'zh-CN'` | Código de idioma (`zh-CN`, `en`, `ja`, …) | | `bindTo` | `string \| HTMLElement` | - | Seletor de elemento ou nó ao qual vincular (somente para `product="bind"`) | ## Eventos | Evento | Payload | Descrição | |-------|---------|-------------| | `success` | `{ token, type, action }` | Verificação bem-sucedida | | `error` | `error` | Verificação falhou | | `close` | — | CAPTCHA fechado | | `ready` | — | CAPTCHA pronto | ## Métodos (via `ref`) ```vue ``` | Método | Descrição | |--------|-------------| | `verify()` | Dispara a verificação | | `reset()` | Reinicia o estado do CAPTCHA | | `destroy()` | Destrói a instância | | `bindTo(selector)` | Vincula a um elemento (modo `bind`) | | `setLang(lang)` | Troca o idioma in-place | ## Produção: modo `serverToken` Para fluxos de alto valor (login, cadastro, pagamento) recomendamos o **fluxo de token emitido pelo servidor**. Seu backend cunha um `server_token` de uso único (TTL de 5 minutos) via `POST /v1/server/challenge/issue` e o entrega ao navegador: ```vue ``` Veja a [Referência da API](/pt-BR/api-reference) para o contrato completo de backend. ## Links - [npm](https://www.npmjs.com/package/@captcha-la/vue) · [GitHub](https://github.com/Captcha-La/vue) · [exemplo](https://github.com/Captcha-La/vue-example) - [Visão geral do SDK Web](/pt-BR/web-sdk) · [Referência da API](/pt-BR/api-reference)