algebraic-captcha
Generate CAPTCHA from algebraic equation
Install
Install package as yet another npm package:
npm install algebraic-captcha
Also yarn package manager can be used:
yarn add algebraic-captcha
Usage
Simple example.
const {AlgebraicCaptcha} = require('algebraic-captcha');
async function generateCaptcha() {
const algebraicCaptcha = new AlgebraicCaptcha({
width: 200,
height: 200,
background: '#ffffff',
color: '#000000',
minValue: 1,
maxValue: 10,
operandAmount: 1,
operandTypes: ['+', '-']
});
const {image, answer} = await algebraicCaptcha.generateCaptcha();
}
Here:
answer
- is numeric answer for given equation (10 for this case).image
- image buffer
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/png'});
res.end(image);
});
app.listen(3000);
Options
Available options:
width
.
Width of generated image in pixels
- minimal value: 20
- minimal value: 1000
- default value: 200
height
Height of generated image in pixels
- minimal value: 20
- minimal value: 1000
- default value: 100
minValue
Min operand value used in equation
- minimal value: 1
- minimal value: 10000
- default value: 1
maxValue
Max operand value used in equation
- minimal value: 1
- minimal value: 10000
- default value: 1
background
Background color of captcha image
color
Text color of captcha image
operandAmount
Number of equation operations
operandTypes
Array of used math operators
- default value: ['+', '-']
Development
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:
Important Use command npm run cm
for commit your changes instead of git commit
.
License
Apache-2.0
Support
Bugs, PRs, comments, suggestions welcomed!
Maintainer: Andrey Kuznetsov