--- title: Vue SDK --- # Vue SDK Официальный компонент Vue 3 для CAPTCHA CaptchaLa — опубликован как [`@captcha-la/vue`](https://www.npmjs.com/package/@captcha-la/vue). ## Живое демо ::: tip 📦 [demo-v1.captcha.la/vue](https://demo-v1.captcha.la/vue/) — рабочее демо со всеми четырьмя режимами product. Исходный код: [Captcha-La/vue-example](https://github.com/Captcha-La/vue-example). ::: ## Установка ```bash npm install @captcha-la/vue # or yarn add @captcha-la/vue # or pnpm add @captcha-la/vue ``` Peer-зависимость: `vue@^3.2.0`. ## Быстрый старт ```vue ``` ## Props | Prop | Тип | По умолчанию | Описание | |------|------|---------|-------------| | `appKey` | `string` | *обязательно* | Ключ приложения CaptchaLa | | `serverToken` | `string` | - | Одноразовый Token запроса, выданный сервером. Обязателен, если у приложения `server_token_required=true`. | | `product` | `'popup' \| 'float' \| 'embed' \| 'bind'` | `'popup'` | Режим отображения | | `action` | `string` | `'default'` | Идентификатор действия (например `login`, `register`, `checkout`) | | `lang` | `string` | `'zh-CN'` | Код языка (`zh-CN`, `en`, `ja`, …) | | `bindTo` | `string \| HTMLElement` | - | Селектор элемента или узел для привязки (только для `product="bind"`) | ## События | Событие | Payload | Описание | |-------|---------|-------------| | `success` | `{ token, type, action }` | Проверка успешна | | `error` | `error` | Проверка не удалась | | `close` | — | CAPTCHA закрыта | | `ready` | — | CAPTCHA готова | ## Методы (через `ref`) ```vue ``` | Метод | Описание | |--------|-------------| | `verify()` | Запустить проверку | | `reset()` | Сбросить состояние CAPTCHA | | `destroy()` | Уничтожить экземпляр | | `bindTo(selector)` | Привязка к элементу (для режима `bind`) | | `setLang(lang)` | Переключить язык на лету | ## Production: режим `serverToken` Для ответственных потоков (вход, регистрация, оплата) мы рекомендуем **поток Token, выданного сервером**. Ваш backend выпускает одноразовый `server_token` (TTL 5 минут) через `POST /v1/server/challenge/issue` и передаёт его в браузер: ```vue ``` См. [Справочник API](/ru/api-reference) для полного backend-контракта. ## Ссылки - [npm](https://www.npmjs.com/package/@captcha-la/vue) · [GitHub](https://github.com/Captcha-La/vue) · [example](https://github.com/Captcha-La/vue-example) - [Обзор Web SDK](/ru/web-sdk) · [Справочник API](/ru/api-reference)