Skip to content

Vue SDK ​

Component Vue 3 chính thức cho CaptchaLa CAPTCHA — phát hành dưới dạng @captcha-la/vue.

Demo trực tiếp ​

📦

demo-v1.captcha.la/vue — demo chạy được với cả bốn chế độ sản phẩm. Mã nguồn: Captcha-La/vue-example.

Cài đặt ​

bash
npm install @captcha-la/vue
# hoặc
yarn add @captcha-la/vue
# hoặc
pnpm add @captcha-la/vue

Peer dependency: vue@^3.2.0.

Bắt đầu nhanh ​

vue
<template>
  <Captchala
    app-key="your-app-key"
    product="popup"
    @success="handleSuccess"
    @error="handleError"
  />
</template>

<script setup>
import { Captchala } from '@captcha-la/vue'

function handleSuccess(result) {
  // Gửi result.token đến máy chủ của bạn để xác minh.
  console.log('pass_token:', result.token)
}

function handleError(error) {
  console.error('verification failed:', error)
}
</script>

Props ​

PropKiểuMặc địnhMô tả
appKeystringbắt buộcKhóa ứng dụng CaptchaLa
serverTokenstring-Token thử thách do máy chủ phát hành, dùng một lần. Bắt buộc khi ứng dụng có server_token_required=true.
product'popup' | 'float' | 'embed' | 'bind''popup'Chế độ hiển thị
actionstring'default'Định danh hành động (ví dụ login, register, checkout)
langstring'zh-CN'Mã ngôn ngữ (zh-CN, en, ja, …)
bindTostring | HTMLElement-Selector hoặc node để gắn vào (chỉ cho product="bind")

Sự kiện ​

Sự kiệnPayloadMô tả
success{ token, type, action }Xác minh thành công
errorerrorXác minh thất bại
close—CAPTCHA bị đóng
ready—CAPTCHA sẵn sàng

Phương thức (qua ref) ​

vue
<template>
  <Captchala ref="captchaRef" app-key="your-app-key" />
  <button @click="captchaRef?.verify()">Verify</button>
</template>

<script setup>
import { ref } from 'vue'
const captchaRef = ref()
</script>
Phương thứcMô tả
verify()Kích hoạt xác minh
reset()Đặt lại trạng thái CAPTCHA
destroy()Hủy instance
bindTo(selector)Gắn vào phần tử (cho chế độ bind)
setLang(lang)Đổi ngôn ngữ tại chỗ

Production: chế độ serverToken ​

Đối với các luồng quan trọng (đăng nhập, đăng ký, thanh toán), chúng tôi khuyến nghị luồng token do máy chủ phát hành. Backend của bạn phát hành một server_token dùng một lần (TTL 5 phút) qua POST /v1/server/challenge/issue và trao nó cho trình duyệt:

vue
<template>
  <Captchala
    v-if="serverToken"
    :server-token="serverToken"
    app-key="pk_your_public_app_key"
    action="login"
    @success="onSuccess"
  />
</template>

<script setup>
import { ref, onMounted } from 'vue'
import { Captchala } from '@captcha-la/vue'

const serverToken = ref()

onMounted(async () => {
  const r = await fetch('/api/captcha-token')   // backend của bạn
  serverToken.value = (await r.json()).server_token
})

function onSuccess(result) {
  console.log('pass_token:', result.token)
}
</script>

Xem Tài liệu API để biết toàn bộ hợp đồng phía backend.

Liên kết ​

MIT-licensed examples · CaptchaLa is operated independently