Skip to content

NathanielHill/micro-captcha

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Micro-Captcha

npm version Coverage Status Greenkeeper badge

Simple Google ReCAPTCHA microservice for Zeit Now. (does not yet work with the new ReCAPTCHA v3.)

Can also be imported and used a node module.

Usage

How to use on Zeit Now 2.0

Define an /api/captcha lambda in now.json with the following:

import microCaptcha from 'micro-captcha'

export default microCaptcha({ secret: process.env.RECAPTCHA_SECRET_KEY })

Make sure to also set RECAPTCHA_SECREY_KEY to be available at runtime.

Now on the client side you'll want to pick your favorite ReCAPTCHA component (or roll your own) and use a handler like so:

onVerify () {
  fetch(`/api/captcha?response=${captchaResponse}`)
    .then(r => {
      if (r.ok) return r.json()
      throw new Error('failed to verify humanity')
    })
    .then(({ verified }) => {
      if (verified) {
        ... // Notify user of success!
      }
    })
}

Of course, you likely want to actually perform some action server-side, in which case it's best to use your /api/captcha endpoint indirectly. For an example see: micro-captcha-example

Use as a node module

Can also be used as a node module which can be useful for local development.

To install:

yarn add micro-captcha

or

npm install --save micro-captcha

The default export takes a config option (where secret is the only required key) and runs the microservice. Usage will look something like this:

const microCaptcha = require('micro-captcha')

microCaptcha({ secret: process.env.CAPTCHA_SECRET, port: process.env.PORT, log = true })

Author

About

Simple Google ReCAPTCHA microservice for Zeit Now 2.0

Resources

Stars

Watchers

Forks

Packages

No packages published