3.0.1 • Published 8 years ago
canvas-captcha v3.0.1
canvas-captcha
a captcha module for nodejs based on node-canvas
note
- install Cairo first, For system-specific installation view the Wiki from node-canvas
- if you can see the captcha image, but empty, try another font your server has or install proper font pack in your server, such as
sudo apt-get install ttf-mscorefonts-installer
.
Installation
npm install canvas-captcha
use
//captcha
var captcha = require('canvas-captcha')
,captchaOptions = {
charPool: ('abcdefghijklmnopqrstuvwxyz' + 'abcdefghijklmnopqrstuvwxyz'.toUpperCase() + '1234567890').split('') //char pool Array
,size: {
width: 100
,height: 32
} //image size
,textPos: {
left: 15
,top: 26
} //text drawing start position
,rotate: .01 //text ratate
,charLength: 4 //how many chars
,font: '26px Unifont' //font size
,strokeStyle: '#0088cc' //style
,bgColor: '#eeeeee' //bg color
,confusion: true //draw another group background text to mangle the text
,cFont: '30px Arial' //bg text style
,cStrokeStyle: '#adc' //bg text color
,cRotate: -.05 //bg text rotate
}
//callback style
app.get('/captcha', function(req, res) {
captcha(captchaOptions, function(err, data) {
if(err) {
res.send(err)
}
else {
req.session.captcha = data.captchaStr
res.end(data.captchaImg)
}
})
})
//use promise
var captchaPromise = function(options) {
return new Promise(function(resolve, reject) {
captcha(options, function(err, data) {
if(err) reject(err)
else resolve(data)
})
})
}
//in express
app.get('/captcha', function(req, res) {
captchaPromise(captchaOptions)
.then(function(data) {
req.session.captcha = data.captchaStr
res.end(data.captchaImg)
}, function(err) {
res.send(err)
})
})
//in koa
app.get('/captcha', function* (next) {
var data = yield captchaPromise(captchaOptions)
this.session.captcha = data.captchaStr
this.body = data.captchaImg
})
test && example
git clone https://github.com/zxdong262/canvas-captcha.git
cd canvas-captcha
sudo npm install
# test
npm run test
#example
node test/app.js
# then visit http://127.0.0.1:5001
changelog
- 2.1.0 use canvas 1.3.15, support node 6.2+
- 2.0.1 use canvas 1.3.12, a little rewrite
- 2.0.0 use canvas 1.2.9, compatible with nodejs v4
- 1.2.8 use 'Unifont' as default font
- 1.2.7 use 'system' as default font
- 1.2.6 just fix readme koa example
- 1.2.5 add some example to readme, use canvas version
1.2.1
- 1.2.4 make
err
the first callback param - 1.2.3 use canvas version
1.1.6
version instead of version*
license
MIT
3.0.1
8 years ago
3.0.0
8 years ago
2.1.0
9 years ago
2.0.1
9 years ago
2.0.0
10 years ago
1.2.8
10 years ago
1.2.7
10 years ago
1.2.6
10 years ago
1.2.5
10 years ago
1.2.4
10 years ago
1.2.3
10 years ago
0.1.0
10 years ago
1.2.2
11 years ago
1.2.1
11 years ago
1.2.0
11 years ago
0.0.6
11 years ago
0.0.3
11 years ago
0.0.2
11 years ago
0.0.1
11 years ago