国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > JS > 正文

Nodejs中使用captchapng模塊生成圖片驗證碼

2024-05-06 16:37:13
字體:
供稿:網(wǎng)友

Nodejs項目,在做圖片驗證碼的時候遇到了難題。Nodejs沒有圖片庫,以后會有,但是現(xiàn)在沒有。

網(wǎng)絡上搜索一圈,有幾個解決方案:

1、采用第三方驗證碼程序,有的時候,項目可能不允許;

2、使用Java或者PHP生成圖片,Nodejs調(diào)用,中間采用Redies共享;

這兩種方式都不太理想,好在終于找到了可以支持Nodejs圖片驗證碼的一個庫,雖然只支持數(shù)字,但是也還不錯。原理是使用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盡快補充缺乏的庫。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網(wǎng)。


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 封开县| 宣化县| 津南区| 德令哈市| 乐平市| 沛县| 富源县| 正安县| 凉山| 长宁区| 南阳市| 栖霞市| 丰县| 且末县| 库尔勒市| 芦山县| 开封县| 顺平县| 梧州市| 固安县| 玉林市| 安顺市| 彰化市| 上蔡县| 新津县| 津南区| 容城县| 海原县| 清徐县| 瓮安县| 那曲县| 通许县| 磐石市| 开原市| 花莲市| 德兴市| 洛南县| 莫力| 府谷县| 炎陵县| 昌江|