Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/fourcube/lambda-captcha
Generates captchas that can be verified decentrally.
https://github.com/fourcube/lambda-captcha
Last synced: 2 months ago
JSON representation
Generates captchas that can be verified decentrally.
- Host: GitHub
- URL: https://github.com/fourcube/lambda-captcha
- Owner: fourcube
- License: mit
- Created: 2019-10-01T07:28:31.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2023-01-04T11:50:45.000Z (about 2 years ago)
- Last Synced: 2024-08-13T03:07:40.243Z (5 months ago)
- Language: TypeScript
- Size: 500 KB
- Stars: 6
- Watchers: 1
- Forks: 5
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# lambda-captcha
Generates captchas that can be verified decentrally.
## Description
This is heavily inspired by [svg-captcha](https://github.com/lemonce/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
```js
const lambdaCaptcha = require('lambda-captcha')
const SECRET = process.env.CAPTCHA_SECRETfunction 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
```js
const lambdaCaptcha = require('lambda-captcha')
const SECRET = process.env.CAPTCHA_SECRETfunction 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`