Awesome
<p align="center">
<svg width="256px" height="221px" viewBox="0 0 256 221" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="xMidYMid">
<g>
<path d="M204.8,0 L256,0 L128,220.8 L0,0 L50.56,0 L97.92,0 L128,51.2 L157.44,0 L204.8,0 Z" fill="#41B883"></path>
<path d="M0,0 L128,220.8 L256,0 L204.8,0 L128,132.48 L50.56,0 L0,0 Z" fill="#41B883"></path>
<path d="M50.56,0 L128,133.12 L204.8,0 L157.44,0 L128,51.2 L97.92,0 L50.56,0 Z" fill="#35495E"></path>
</g>
</svg>
</p>
<h1 align="center">vue3-recaptcha2</h1>
<p align="center">Vue v3 component for Google reCAPTCHA v2</p>
Installation
npm install vue3-recaptcha2
Example usage
With bundlers
<template>
<vue-recaptcha v-show="showRecaptcha" sitekey="key"
size="normal"
theme="light"
hl="tr"
:loading-timeout="loadingTimeout"
@verify="recaptchaVerified"
@expire="recaptchaExpired"
@fail="recaptchaFailed"
@error="recaptchaError"
ref="vueRecaptcha">
</vue-recaptcha>
</template>
<script>
import vueRecaptcha from 'vue3-recaptcha2';
export default {
name: 'app',
components: {
vueRecaptcha
},
data() {
return {
showRecaptcha: false,
loadingTimeout: 30000 // 30 seconds
}
},
methods: {
recaptchaVerified(response) {
},
recaptchaExpired() {
this.$refs.vueRecaptcha.reset();
},
recaptchaFailed() {
},
recaptchaError(reason) {
}
}
};
</script>
With CDN
<div id="app">
<button v-on:click="toggle">Show</button>
<vue-recaptcha v-if="show" :sitekey="recaptchaSiteKey" v-on:verify="recaptchaUpdated" hl="ru"></vue-recaptcha>
</div>
<script src="https://unpkg.com/vue"></script>
<script src="https://unpkg.com/vue3-recaptcha2"></script>
<script>
const app = Vue.createApp({
name: "app",
components: {
VueRecaptcha
},
data() {
return {
show: false,
recaptcha: null,
recaptchaSiteKey: 'key'
}
},
methods: {
toggle() {
this.show = !this.show;
},
recaptchaUpdated(recaptcha) {
this.recaptcha = recaptcha;
}
}
});
app.mount("#app");
</script>
API
Props
- sitekey (required)
Your sitekey
- size (optional)
The size of the widget
- theme (optional)
The color theme of the widget
- hl (optional)
Forces the widget to render in a specific language. Auto-detects the user's language if unspecified.
- loading-timeout (optional)
Milliseconds to wait for widget to load before triggering a timeout error. Defaults to 0 (i.e. never timeout).
Methods
- reset
Resets the reCAPTCHA widget
- execute
Programmatically invoke the challenge
Events
- verify(response)
The name of your callback function, executed when the user submits a successful response. The g-recaptcha-response token is passed to your callback
- expire
The name of your callback function, executed when the reCAPTCHA response expires and the user needs to re-verify
- fail
The name of your callback function, executed when reCAPTCHA encounters an error (usually network connectivity) and cannot continue until connectivity is restored. If you specify a function here, you are responsible for informing the user that they should retry
- error
The name of your callback function, executed when reCAPTCHA fails to load. If you specify a function here, you are responsible for either reloading (e.g. by unmounting / re-mounting the component) or notifying the user that they should reload / retry