Generate CAPTCHA from algebraic formula
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:
answer
- is numeric answer for given equation (10 for this case).image
- svg image stringUsing 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
.Width of generated image in pixels
height
Height of generated image in pixels
minValue
Min operand value used in equation
maxValue
Max operand value used in equation
background
Background color of captcha image
noise
Number of noise lines
operandAmount
Number of equation operations
operandTypes
Array of used math operators
mode
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)
targetSymbol
Symbol which is used as placeholder for answer
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 developmentImportant Use command npm run cm
for commit your changes instead of git commit
.
Apache-2.0
Bugs, PRs, comments, suggestions welcomed!
Maintainer: andrey.kuznetsov48@yandex.ru">Andrey Kuznetsov