有一些Node.JS圖片生成類(lèi)庫(kù),比如node-captcha等的類(lèi)庫(kù),需要c/c++程序生成圖片。跨平臺(tái)部署不是很方便。這里介紹幾個(gè)用純JS實(shí)現(xiàn)的圖片驗(yàn)證碼生成模塊。
captchapng
用純JavaScript實(shí)現(xiàn)的驗(yàn)證碼生成模塊。
https://github.com/GeorgeChan/captchapng
安裝簡(jiǎn)單,依賴(lài)少:
npm install captchapng
示例:
var captchapng = require('captchapng');app.get('/sign/captcha.png', function(req, res) {var captchaNumber = parseInt(Math.random() * 9000 + 1000)req.session.captcha = captchaNumbervar p = new captchapng(80,20, captchaNumber); // width,height,numeric captchap.color(0, 0, 0, 0); // First color: background (red, green, blue, alpha)p.color(80, 80, 80, 255); // Second color: paint (red, green, blue, alpha)var img = p.getBase64();var imgbase64 = new Buffer(img,'base64');res.writeHead(200, {'Content-Type': 'image/png'});res.end(imgbase64);})Express + Captcha
為Express框架設(shè)計(jì)的驗(yàn)證碼生成模塊。
https://github.com/napa3um/node-captcha
安裝&示例:
$ npm install captchaUsage (for Express 4)'use strict'const express = require('express')const session = require('express-session')const bodyParser = require('body-parser')const captchaUrl = '/captcha.jpg'const captchaId = 'captcha'const captchaFieldName = 'captcha'const captcha = require('./captcha').create({ cookie: captchaId })const app = express()app.use(session({secret: 'keyboard cat',resave: false,saveUninitialized: true,}))app.use(bodyParser.urlencoded({ extended: false }))app.get(captchaUrl, captcha.image())app.get('/', (req, res) => {res.type('html')res.end(`<img src="${ captchaUrl }"/><form action="/login" method="post"><input type="text" name="${ captchaFieldName }"/><input type="submit"/></form>`)})app.post('/login', (req, res) => {res.type('html')res.end(`<p>CAPTCHA VALID: ${ captcha.check(req, req.body[captchaFieldName]) }</p>`)})app.listen(8080, () => {console.log('server started')})前端滑塊驗(yàn)證
前端生成軌跡發(fā)送到后端驗(yàn)證,輸入簡(jiǎn)單,但是容易被破解。
https://gitee.com/LongbowEnterprise/SliderCaptcha
總結(jié)
以上所述是小編給大家介紹的Node.JS用純JavaScript生成圖片或滑塊式驗(yàn)證碼功能,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)武林網(wǎng)網(wǎng)站的支持!
如果你覺(jué)得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注