博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
不依赖canvas的Node.js验证码模块captchapng
阅读量:5931 次
发布时间:2019-06-19

本文共 1597 字,大约阅读时间需要 5 分钟。

hot3.png

试过很多个验证码模块,要么依赖canvas,要么需要编译,使用都不够简单方便。captchapng是一个基于pnglib模块开发,数字型验证码模块。内置字体、全JavaScript无其它依赖,使用非常简单高效,很符合我的使用需求。

1. 模块安装

npm install captchapng --save

2.使用示例

var http = require('http');var captchapng = require('captchapng'); http.createServer(function (request, response) {    if(request.url == '/captcha.png') {        var p = new captchapng(80,30,parseInt(Math.random()*9000+1000)); // 宽,高,数字验证码        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');        response.writeHead(200, {            'Content-Type': 'image/png'        });        response.end(imgbase64);    } else response.end('');}).listen(8181); console.log('Web server started.\n http:\\127.0.0.1:8181\captcha.png');

3.在Express框架中使用

为了能在项目不同位置使用,我在方法中增加了query参数自定义宽高的设置。示例如下:

var captchapng = require('captchapng');exports.captchap=function (req, res, next) {    var width=!isNaN(parseInt(req.query.width))?parseInt(req.query.width):100;    var height=!isNaN(parseInt(req.query.height))?parseInt(req.query.height):30;    var code = parseInt(Math.random()*9000+1000);    req.session.checkcode = code;    var p = new captchapng(width,height, code);    p.color(0, 0, 0, 0);     p.color(80, 80, 80, 255);    var img = p.getBase64();    var imgbase64 = new Buffer(img,'base64');    res.writeHead(200, {        'Content-Type': 'image/png'    });    res.end(imgbase64);}

在前端页面,调用方法对应路由即可。

转载于:https://my.oschina.net/u/1050900/blog/508146

你可能感兴趣的文章
世界上使人任何快乐的事情都要付出代价
查看>>
sql语句整理
查看>>
13个可实现超棒数据可视化效果的Javascript框架
查看>>
【c语言】二维数组中的查找,杨氏矩阵在一个二维数组中,每行都依照从左到右的递增的顺序排序,输入这种一个数组和一个数,推断数组中是否包括这个数...
查看>>
管理经验(一)——怎样当好一个管理者
查看>>
platform_set_drvdata和platform_get_drvdata用法【转】
查看>>
WIN下Git GUI 教程
查看>>
AFNetworking、ASIHTTPRequest中SSL的使用
查看>>
解决wordpress无法发送邮件的问题|配置好WP-Mail-SMTP的前提
查看>>
mysql之TIMESTAMP(时间戳)用法详解
查看>>
四层、七层负载均衡区别
查看>>
【iCore4 双核心板_ARM】例程二十一:LWIP_TCP_SERVER实验——以太网数据传输
查看>>
Kafka设计解析(六)- Kafka高性能关键技术解析
查看>>
git的几个操作
查看>>
Python3 注释
查看>>
老树开新花:DLL劫持漏洞新玩法
查看>>
关于LVS负载均衡tcp长连接分发的解决思路
查看>>
LeetCode Recover Binary Search Tree
查看>>
SpringMVC的页面几种返回方式
查看>>
优盘复制大文件
查看>>