Skip to content

Generates captchas that can be verified decentrally.

License

Notifications You must be signed in to change notification settings

PinkDiamond1/lambda-captcha

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

lambda-captcha

Generates captchas that can be verified decentrally.

Description

This is heavily inspired by svg-captcha, but written in TypeScript. It also allows you to pass the generated captcha expressions together with the user-supplied captcha solution, so you can verify the results independently. The captcha expressions are encrypted, so they are not machine readable.

Usage

Generating a captcha

const lambdaCaptcha = require('lambda-captcha')
const SECRET = process.env.CAPTCHA_SECRET

function generateCaptcha() {
  const captchaConfig = lambdaCaptcha.LambdaCaptchaConfigManager.default(SECRET)
  const captcha = lambdaCaptcha.create(captchaConfig)

  return {
    // The captcha SVG that you can display inside e.g. a form
    captchaSvg: captcha.captchaSvg,
    
    // This is the un-encrypted expression of the captcha.
    captchaExpression: captcha.expr,
    
    // This is the encrypted expression of the captcha.
    // Pass it along with your server side verification requests.
    encryptedCaptchaExpression: captcha.encryptedExpr
  }
}

Verifying a captcha

const lambdaCaptcha = require('lambda-captcha')
const SECRET = process.env.CAPTCHA_SECRET

function verify(encryptedCaptchaExpression, captchaSolution) {
  const captchaResult = lambdaCaptcha.verify(captchaExpression, captchaSolution, SECRET)
  return captchaResult // either true on success or false if the solution was wrong
}

Testing

npm run test

or

npm run tdd

About

Generates captchas that can be verified decentrally.

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 99.5%
  • JavaScript 0.5%