新网创想网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
本篇内容介绍了“Node.JS怎么使用纯JavaScript生成图片或滑块式验证码功能”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
创新互联建站是专业的新华网站建设公司,新华接单;提供网站设计制作、做网站,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行新华网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
有一些Node.JS图片生成类库,比如node-captcha等的类库,需要c/c++程序生成图片。跨平台部署不是很方便。这里介绍几个用纯JS实现的图片验证码生成模块。
captchapng
用纯JavaScript实现的验证码生成模块。
https://github.com/GeorgeChan/captchapng
安装简单,依赖少:
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 = captchaNumber var p = new captchapng(80,20, captchaNumber); // width,height,numeric captcha p.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框架设计的验证码生成模块。
https://github.com/napa3um/node-captcha
安装&示例:
$ npm install captcha Usage (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(``) }) app.post('/login', (req, res) => { res.type('html') res.end(`
CAPTCHA VALID: ${ captcha.check(req, req.body[captchaFieldName]) }
`) }) app.listen(8080, () => { console.log('server started') })前端滑块验证
前端生成轨迹发送到后端验证,输入简单,但是容易被破解。
“Node.JS怎么使用纯JavaScript生成图片或滑块式验证码功能”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注创新互联网站,小编将为大家输出更多高质量的实用文章!