Socket
Socket
Sign inDemoInstall

vue-programmatic-invisible-google-recaptcha

Package Overview
Dependencies
0
Maintainers
1
Versions
12
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    vue-programmatic-invisible-google-recaptcha

A simple invisible Google reCAPTCHA component focused solely on programmatic invocation.


Version published
Weekly downloads
376
decreased by-21.99%
Maintainers
1
Install size
157 kB
Created
Weekly downloads
 

Readme

Source

vue-programmatic-invisible-google-recaptcha

A simple invisible Google reCAPTCHA component focused solely on programmatic invocation.

NPM Version NPM Downloads License Tweet

Demo

View demo

View on npm

View on GitHub

Install

# npm
npm i vue-programmatic-invisible-google-recaptcha

# yarn
yarn add vue-programmatic-invisible-google-recaptcha

Or you can include it through the browser at the bottom of your page:

<!-- Please note if you're using the browser method you're going to want to adjust the version number as needed. -->

<script src="https://unpkg.com/vue-programmatic-invisible-google-recaptcha@2.1.2/dist/vue-programmatic-invisible-google-recaptcha.min.js"></script>

About

This is a simple component that helps deal with an invisible Google reCAPTCHA that you intend to invoke programmatically. There are a few plugins that help with Google's reCAPTCHA, but this one is focused on the invisble version with a programmatic invocation only. Due to its nature, reCAPTCHA can be a little complex - so that is what is driving the narrow scope here. Library supports easy multiple reCAPTCHAs on the same page.

Here's a breakdown of the steps you go through when using this library:

  • Load the Google reCAPTCHA library using the provided script tag.
  • Whenever you'd like, invoke the reCAPTCHA using this.$refs.invisibleRecaptcha1.execute() method (replacing invisibleRecaptcha1 with the ref name you set).
  • Google will either decide to show a challange or not. Either way, you'll get the recaptchaToken in the registered recaptcha-callback event. Make sure to register for that.
  • Use that token to verify in your backend.
  • Call the method again if you'd like to get a new token.

Usage Example

import VueProgrammaticInvisibleGoogleRecaptcha from 'vue-programmatic-invisible-google-recaptcha'
Vue.component('vue-programmatic-invisible-google-recaptcha', VueProgrammaticInvisibleGoogleRecaptcha)
<!-- Put this in your base HTML file - I use Vue CLI 3 so I put it at the bottom of the ./public/index.html file. -->
<script src="https://www.google.com/recaptcha/api.js?render=explicit" async defer></script>

<!-- This is in the component you want to have the reCAPTCHA -->
<vue-programmatic-invisible-google-recaptcha
    ref="invisibleRecaptcha1"
    :sitekey="'<YOUR_SITEKEY_HERE>'"
    :elementId="'invisibleRecaptcha1'"
    :badgePosition="'left'"
    :showBadgeMobile="false"
    :showBadgeDesktop="true"
    @recaptcha-callback="recaptchaCallback"
></vue-programmatic-invisible-google-recaptcha>

<!-- Where you want to invoke the reCAPTCHA -->
submitButtonClicked() {
    // Do whatever you want here (probably some validation). After
    // that's done (or passed your expectations) you can then invoke the reCAPTCHA.
    this.$refs.invisibleRecaptcha1.execute()
},

<!-- The reCAPTCHA's registered callback. This is where you'll get your token. -->
recaptchaCallback (recaptchaToken) {
    // Use the `recaptchaToken` to pass to your backend to verify the token
    axios.post('/enter', {recaptchaToken: recaptchaToken}).then((result) => {
        console.log(result)
    })
},

Note - I find it to be a good idea to allow the user to reset their reCAPTCHA on their own if they're experiencing an issue. This component exposes a function for this. To do this, give them a button with the following code in the click function: this.$refs.invisibleRecaptcha1.reset(). This will reset the reCAPTCHA and hopefully get them passed the issue they're having.

Props

proptypedescriptionrequireddefault
refStringUnique String gives you control over the componentYes
sitekeyStringPublic key given to you by Google.Yes
elementIdStringUnique String for the id of the element. Allows for multiple seperate reCAPTCHAsYes
badgePositionStringPass 'left' to show badge on left side of screen.No'right'
showBadgeMobileBooleantrue to show badge on mobile. false to hide badge on mobile.Notrue
showBadgeDesktopBooleantrue to show badge on desktop. false to hide badge on desktop.Notrue

Methods

Note - call these methods through the ref you set up with your component. Example: this.$refs.invisibleRecaptcha1.execute().

methodparametersdescription
executenoneUsed to gather the token. If Google decides that the user needs to complete a test they'll do it here.
resetnoneUsed to reset the reCAPTCHA instance.

Events

eventparameter valuedescription
recaptcha-callbackStringThis even gets emitted when the token has been aquired. You can then use this token to verify the user on your backend.

Development

# install dependencies
npm install

# serve with hot reload
npm run watch

# run the tests
npm run test

# build demo page
npm run build:example

# build library
npm run build:library

# build everything and run tests
npm run build

Other

Go ahead and fork the project! Submit an issue if needed. Have fun!

Thank You

Thanks to Google for their reCAPTCHA library.

License

MIT

Packaged with a mixture of vue-lib-template and vue-sfc-rollup.

Keywords

FAQs

Last updated on 30 Apr 2019

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc