Generates captchas that can be verified decentrally.
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.
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}}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}npm run test
or
npm run tdd