Generate CAPTCHA from algebraic equation
Install package as yet another npm package:
npm install algebraic-captcha
Also yarn package manager can be used:
yarn add algebraic-captcha
Simple example.
const {AlgebraicCaptcha} = require('algebraic-captcha');
async function generateCaptcha() {
const algebraicCaptcha = new AlgebraicCaptcha({
width: 200,
height: 200,
background: '#ffffff',
noise: 1,
minValue: 1,
maxValue: 10,
operandAmount: 1,
operandTypes: ['+', '-'],
mode: 'formula',
targetSymbol: '?'
});
const {image, answer} = await algebraicCaptcha.generateCaptcha();
}
Here:
Using inside express middleware.
const express = require('express');
const session = require('express-session');
const {AlgebraicCaptcha} = require('algebraic-captcha');
const app = express();
const algebraicCaptcha = new AlgebraicCaptcha({});
app.use(session({secret: 'my awesome session', resave: true}));
app.get('/captcha', async (req, res) => {
const {image, answer} = await algebraicCaptcha.generateCaptcha();
req.session.captcha = answer;
res.writeHead(200, {'Content-Type': 'image/svg+xml'});
res.end(image);
});
app.listen(3000);
Available options:
Width of generated image in pixels
- minimal value: 20
- minimal value: 1000
- default value: 200
Height of generated image in pixels
- minimal value: 20
- minimal value: 1000
- default value: 100
Min operand value used in equation
- minimal value: 1
- minimal value: 10000
- default value: 1
Max operand value used in equation
- minimal value: 1
- minimal value: 10000
- default value: 1
Background color of captcha image
- default value: '#ffffff'
Number of noise lines
- default value: 1
Number of equation operations
- default value: 1
Array of used math operators
- default value: ['+', '-']
Can have two available values: formula
, equation
In formula
mode anwer placeholder will be put to the last position of generated string, such as:
5 + 2 = ?
In equation
mode answer placeholder will be put on random operand position except last:
5 + ? = 7 //(or ? + 2 = 7)
- default value: 'formula'
Symbol which is used as placeholder for answer
- default value: '?'
Clone repository or its fork to local filesystem
git clone https://github.com/tormozz48/algebraic-captcha.git
Install npm dependencies:
npm install
Here are some suitable commands that can be used during development:
npm run build
- compile typescript filesnpm run lint
- run tslint verification toolnpm test
- run tests with mochanpm run watch
- launch watcher for compile source files during development
Important Use command npm run cm
for commit your changes instead of git commit
.
Apache-2.0
Bugs, PRs, comments, suggestions welcomed!
Maintainer: Andrey Kuznetsov