Skip to content

Vue SDK

CaptchaLa CAPTCHA için resmi Vue 3 bileşeni — @captcha-la/vue olarak yayınlanmıştır.

Canlı demo

📦

demo-v1.captcha.la/vue — dört ürün modunun tamamıyla çalıştırılabilir demo. Kaynak: Captcha-La/vue-example.

Kurulum

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

Peer bağımlılık: vue@^3.2.0.

Hızlı başlangıç

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) {
  // Send result.token to your server for validation.
  console.log('pass_token:', result.token)
}

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

Props

PropTürVarsayılanAçıklama
appKeystringzorunluCaptchaLa uygulama anahtarı
serverTokenstring-Tek seferlik, sunucu tarafından düzenlenen challenge token'ı. Uygulamada server_token_required=true olduğunda zorunlu.
product'popup' | 'float' | 'embed' | 'bind''popup'Görüntüleme modu
actionstring'default'Action tanımlayıcı (örn. login, register, checkout)
langstring'zh-CN'Dil kodu (zh-CN, en, ja, …)
bindTostring | HTMLElement-Bağlanılacak eleman seçici veya düğüm (yalnızca product="bind" için)

Olaylar

OlayYükAçıklama
success{ token, type, action }Doğrulama başarılı
errorerrorDoğrulama başarısız
closeCAPTCHA kapatıldı
readyCAPTCHA hazır

Yöntemler (ref aracılığıyla)

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>
YöntemAçıklama
verify()Doğrulamayı tetikle
reset()CAPTCHA durumunu sıfırla
destroy()Örneği yok et
bindTo(selector)Elemana bağla (bind modu için)
setLang(lang)Dili yerinde değiştir

Üretim: serverToken modu

Yüksek değerli akışlar (giriş, kayıt, ödeme) için sunucu tarafından düzenlenen token akışını öneririz. Backend'iniz POST /v1/server/challenge/issue ile tek seferlik bir server_token (5 dakikalık TTL) basar ve bunu tarayıcıya verir:

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')   // your own backend
  serverToken.value = (await r.json()).server_token
})

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

Tam backend sözleşmesi için API Referansı'na bakın.

Bağlantılar

MIT-licensed examples · CaptchaLa is operated independently