`

【Nodejs项目手记】Nodejs中使用图片验证码,captchapng模块可以解决Nodejs图片验证码

阅读更多
 
Nodejs项目,在做图片验证码的时候遇到了难题。Nodejs没有图片库,以后会有,但是现在没有。
 
网络上搜索一圈,有几个解决方案:
 
1、采用第三方验证码程序,有的时候,项目可能不允许;
2、使用Java或者PHP生成图片,Nodejs调用,中间采用Redies共享;
 
这两种方式都不太理想,好在终于找到了可以支持Nodejs图片验证码的一个库,虽然只支持数字,但是也还不错。原理是使用Base64的图片编码方式。
 
这个库的Gighub地址是:https://github.com/GeorgeChan/captchapng
 
使用方法这个主页上都有,这里还是补充一下:
 
1、在Node项目的package.json中增加captchapng模块;
2、使用如下代码:
/**
 * 图片验证码
 * @param req
 * @param res
 * @param next
 */
function randomcodePngController(req , res , next){
    var code = '0123456789';
    var length = 4;
    var randomcode = '';
    for (var i = 0; i < length; i++) {
        randomcode += code[parseInt(Math.random() * 1000) % code.length];
    }
    // 保存到session
    if (null == req.session[sessionConstant.login]) {
        req.session[sessionConstant.login] = {};
    }
    req.session[sessionConstant.login][sessionConstant.randomcode] = randomcode;
   // 输出图片
     var p = new captchapng(80,30,parseInt(randomcode)); // width,height,numeric captcha
    p.color(255, 255, 255, 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);
}
 
3、给这个controller写一个路径,页面就可以直接在img标签里面增加src属性了。
 
这样就搞定了Nodejs的图片验证码,希望Nodejs尽快补充缺乏的库。
 
分享到:
评论

相关推荐

    Nodejs中使用captchapng模块生成图片验证码

    综上所述,Node.js中使用captchapng模块生成图片验证码是一个实用且有效的解决方案,尤其适合那些对图片验证码要求不高,且希望简化开发流程的项目。同时,也期待Node.js社区能够继续成长,填补更多当前所缺失的库和...

    Idea 配置前端web nodejs项目

    environment variable 是指在当前项目中使用的变量,它可以影响项目的行为。在这里,我们可以配置 debug 环境变量,以便在 debug 模式下运行项目。 Nodejs 版本检查 在继续配置之前,我们需要检查 Nodejs 的版本...

    一个完整的nodejs项目

    - **模块系统**:Node.js有内置的模块系统,可以使用`require()`加载和导出模块。 - **V8引擎**:提供了高效的JavaScript执行环境。 3. **Node.js常用框架** - **Express**:是最流行的Node.js Web应用框架,...

    NodeJs - Native实现短信验证码注册登录完整示例:NodeJs - Native.js和附件说明

    "文档说明"文件应该详细介绍了`NodeJs - Native.js`的使用方法,包括如何配置API密钥、如何调用发送验证码和验证验证码的函数,以及可能遇到的问题和解决方案。阅读这份文档是理解并复现这个示例的关键。 综上所述...

    NodeJS入门项目案例(Express+Mysql)

    接着,设置数据库连接,创建数据库和表,学习如何执行SQL查询,以及如何在Express应用中使用这些查询结果。 在Express应用中,你可以使用内置的中间件或者第三方中间件来处理特定的任务,如日志记录、错误处理或...

    Nodejs导出Excel带图片,Nodejs后台导出带图片Excel

    Nodejs导出Excel带图片,Nodejs后台导出带图片Excel 本资源内有说明及使用安装等详细步骤,以及引入插件 由于nodejs导出Excel带图片的资源比较少,我也是找了许久才知道怎么写的,这里发布个收费的,望各位见谅!

    nodejs:NodeJS示例项目

    节点js NodeJS示例项目

    nodejs的验证码组件

    github上下载不方便,直接打包分享。nodejs ccap组件

    NodeJS中文文档精编.pdf 全文免费

    NodeJS中文文档精编.pdf 全文免费 NodeJS是 JavaScript 运行时环境,可以让 JavaScript ... NodeJS 的优点是可以让 JS 代码在服务器端中执行,可以使用所有的 JS 内建对象,单线程的服务器可以轻松地处理高并发请求。

    详解webpack打包nodejs项目(前端代码)

    我的项目情况是这样的:用node.js做后台,ejs做模板引擎(即整个页面是一个ejs文件)由node.js将数据渲染完成后,再将完整页面返回给用户。 那么这样做会遇到的问题: 1. 本项目没有html页面,ejs的作用也不是引入...

    nodejs图片合成源代码,gm插件

    nodejs利用gm插件合成图片源码片段

    Node.js-这是一个nodejs库可以把一个多页的pdf转成多页png图片

    标题中的“Node.js-这是一个nodejs库可以把一个多页的pdf转成多页png图片”表明了这个项目是一个基于Node.js的库,其主要功能是将PDF文档转换为多个PNG图像,每一页PDF对应一张PNG图片。这样的工具在需要对PDF进行...

    express搭建nodejs项目源代码

    nodejs基于express框架搭建项目的代码,直接通过127.0.0.1:3000就可以直接访问

    opencv4nodejs-cv4.10.0完整版

    opencv4nodejs-cv4.10.0完整版的使用也非常简单,只需要下载后,按照配置说明设置环境变量,就可以直接在nodejs项目中使用opencv4nodejs进行开发。这对于初学者和有经验的开发者都是非常友好的。 opencv4nodejs-cv...

    微信小程序+Nodejs项目实战合集

    微信小程序+Nodejs项目实战合集 内含两套完整实战教你全为了解一个小程序的开发流程及步骤

    NodeJS学习笔记和代码

    2. **模块系统**:NodeJS使用CommonJS模块规范,通过`require`引入模块,`exports`或`module.exports`导出模块,便于代码组织和复用。 3. **V8引擎**:NodeJS的高性能得益于Google的V8引擎,它可以将JavaScript代码...

    nodejs os 操作系统模块示例

    这是nodejs操作系统os的示例模块,该文件包含了nodejs对os操作系统的各种调用方法示例,在安装好nodejs的前提下,可以直接使用ts-node运行查看

    nodejs 关于mysql模块 连接超时自动断开解决方法

    nodejs 关于mysql模块 连接超时自动断开解决方法,在这块遇到的坑,而且坑了很久才找到的,分享只为求分

    nodejs 小代码,实现图片上传

    nodejs的一个小代码,使用nodejs代码实现图片的上传

Global site tag (gtag.js) - Google Analytics