3.0.1 • Published 8 years ago

canvas-captcha v3.0.1

Weekly downloads
13
License
MIT
Repository
github
Last release
8 years ago

canvas-captcha

Build Status

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