Skip to content

Vue SDK

Komponen Vue 3 rasmi untuk CAPTCHA CaptchaLa — diterbitkan sebagai @captcha-la/vue.

Demo langsung

📦

demo-v1.captcha.la/vue — demo boleh dijalankan dengan keempat-empat mod produk. Sumber: Captcha-La/vue-example.

Pemasangan

bash
npm install @captcha-la/vue
# atau
yarn add @captcha-la/vue
# atau
pnpm add @captcha-la/vue

Kebergantungan rakan: vue@^3.2.0.

Mula pantas

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) {
  // Hantar result.token kepada pelayan anda untuk pengesahan.
  console.log('pass_token:', result.token)
}

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

Props

PropJenisLalaiPenerangan
appKeystringdiperlukanKunci aplikasi CaptchaLa
serverTokenstring-Token cabaran sekali guna yang dikeluarkan pelayan. Diperlukan apabila aplikasi mempunyai server_token_required=true.
product'popup' | 'float' | 'embed' | 'bind''popup'Mod paparan
actionstring'default'Pengecam tindakan (cth. login, register, checkout)
langstring'zh-CN'Kod bahasa (zh-CN, en, ja, …)
bindTostring | HTMLElement-Pemilih elemen atau nod untuk diikat (hanya untuk product="bind")

Acara

AcaraMuatanPenerangan
success{ token, type, action }Pengesahan berjaya
errorerrorPengesahan gagal
closeCAPTCHA ditutup
readyCAPTCHA sedia

Kaedah (melalui 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>
KaedahPenerangan
verify()Cetus pengesahan
reset()Set semula keadaan CAPTCHA
destroy()Musnahkan instance
bindTo(selector)Ikat ke elemen (untuk mod bind)
setLang(lang)Tukar bahasa di tempat

Pengeluaran: mod serverToken

Untuk aliran bernilai tinggi (log masuk, pendaftaran, pembayaran) kami mengesyorkan aliran token yang dikeluarkan pelayan. Backend anda mengeluarkan server_token sekali guna (TTL 5 minit) melalui POST /v1/server/challenge/issue dan menyerahkannya kepada pelayar:

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 anda sendiri
  serverToken.value = (await r.json()).server_token
})

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

Lihat Rujukan API untuk kontrak backend yang lengkap.

Pautan

MIT-licensed examples · CaptchaLa is operated independently