Skip to content

Repository files navigation

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

constlambdaCaptcha=require('lambda-captcha')constSECRET=process.env.CAPTCHA_SECRETfunctiongenerateCaptcha(){constcaptchaConfig=lambdaCaptcha.LambdaCaptchaConfigManager.default(SECRET)constcaptcha=lambdaCaptcha.create(captchaConfig)return{// The captcha SVG that you can display inside e.g. a formcaptchaSvg: 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

constlambdaCaptcha=require('lambda-captcha')constSECRET=process.env.CAPTCHA_SECRETfunctionverify(encryptedCaptchaExpression,captchaSolution){constcaptchaResult=lambdaCaptcha.verify(captchaExpression,captchaSolution,SECRET)returncaptchaResult// 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

Stars

8 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages