JSPM

micro-captcha

3.0.1
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 1
  • Score
    100M100P100Q30481F
  • License MIT

Simple Google ReCAPTCHA microservice

Package Exports

  • micro-captcha

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (micro-captcha) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

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