Node.JS用纯JavaScript生成图片或滑块式验证码功能


Posted in Javascript onSeptember 12, 2019

有一些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(`
<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')
})

前端滑块验证

前端生成轨迹发送到后端验证,输入简单,但是容易被破解。

Node.JS用纯JavaScript生成图片或滑块式验证码功能 

https://gitee.com/LongbowEnterprise/SliderCaptcha

总结

以上所述是小编给大家介绍的Node.JS用纯JavaScript生成图片或滑块式验证码功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
jquery 多级下拉菜单核心代码
May 21 Javascript
利用js的Node遍历找到repeater的一个字段实例介绍
Apr 25 Javascript
利用CSS、JavaScript及Ajax实现高效的图片预加载
Oct 16 Javascript
javascript实现根据身份证号读取相关信息
Dec 17 Javascript
JavaScript动态修改网页元素内容的方法
Mar 21 Javascript
thinkjs之页面跳转同步异步操作
Feb 05 Javascript
jQuery Ajax自定义分页组件(jquery.loehpagerv1.0)实例详解
May 01 jQuery
windows下更新npm和node的方法
Nov 30 Javascript
vue项目打包之后背景样式丢失的解决方案
Jan 17 Javascript
小程序scroll-view安卓机隐藏横向滚动条的实现详解
May 16 Javascript
vue解决使用$http获取数据时报错的问题
Oct 30 Javascript
微信小程序利用button控制条件标签的变量问题
Mar 15 Javascript
layui 对table中的数据进行转义的实例
Sep 12 #Javascript
layui点击数据表格添加或删除一行的例子
Sep 12 #Javascript
小程序如何支持使用 async/await详解
Sep 12 #Javascript
layui清空,重置表单数据的实例
Sep 12 #Javascript
layui table 多行删除(id获取)的方法
Sep 12 #Javascript
详解Vue中CSS样式穿透问题
Sep 12 #Javascript
微信小程序 函数防抖 解决重复点击消耗性能问题实现代码
Sep 12 #Javascript
You might like
php eval函数用法总结
2012/10/31 PHP
PHP多线程类及用法实例
2014/12/03 PHP
php使用COPY函数更新配置文件的方法
2015/06/18 PHP
详谈PHP编码转换问题
2015/07/28 PHP
PHP文件缓存smarty模板应用实例分析
2016/02/26 PHP
PHP使用http_build_query()构造URL字符串的方法
2016/04/02 PHP
php处理多图上传压缩代码功能
2018/06/13 PHP
解决php extension 加载顺序问题
2019/08/16 PHP
关于laravel-admin ueditor 集成并解决刷新的问题
2019/10/21 PHP
Jquery对象和Dom对象的区别分析
2014/11/20 Javascript
jquery实现标题字体变换的滑动门菜单效果
2015/09/07 Javascript
基于Javascript实现倒计时功能
2016/02/22 Javascript
bootstrap网页框架的使用方法
2016/05/10 Javascript
JS中mouseover和mouseout多次触发问题如何解决
2016/06/06 Javascript
Bootstrap中表单控件状态(验证状态)
2016/08/04 Javascript
微信小程序 网络API发起请求详解
2016/11/09 Javascript
vue学习之mintui picker选择器实现省市二级联动示例
2017/10/12 Javascript
实例学习JavaScript读取和写入cookie
2018/01/29 Javascript
使用validate.js实现表单数据提交前的验证方法
2018/09/04 Javascript
微信小程序图片自适应实现解析
2020/01/21 Javascript
python进阶教程之词典、字典、dict
2014/08/29 Python
python中如何使用正则表达式的集合字符示例
2017/10/09 Python
Python 实现「食行生鲜」签到领积分功能
2018/09/26 Python
python整小时 整天时间戳获取算法示例
2019/02/20 Python
解析Python3中的Import
2019/10/13 Python
Python: 传递列表副本方式
2019/12/19 Python
Python函数必须先定义,后调用说明(函数调用函数例外)
2020/06/02 Python
pandas to_excel 添加颜色操作
2020/07/14 Python
泰国王权免税店官方网站:KingPower
2019/03/11 全球购物
幼儿园大班开学寄语
2014/08/02 职场文书
员工三分钟演讲稿
2014/08/19 职场文书
领导班子四风问题对照检查材料
2014/09/27 职场文书
终止劳动合同协议书
2014/10/05 职场文书
2016年最美孝心少年事迹材料
2016/02/26 职场文书
python中的被动信息搜集
2021/04/29 Python
Java spring单点登录系统
2021/09/04 Java/Android