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 captcha SVG,
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 {
captchaSvg: captcha.captchaSvg,
captchaExpression: captcha.expr
encryptedCaptchaExpression: captcha.encryptedExpr
}
}
Verifying a captcha
const lambdaCaptcha = require('lambda-captcha')
const SECRET = process.env.CAPTCHA_SECRET
function verify(encryptedCaptchaExpression, captchaSolution) {
const captchaResult = captcha.verify(captchaExpression, captchaSolution, SECRET)
return captchaResult
}
Testing
npm run test
or
npm run tdd