国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 衡阳市| 富裕县| 荔浦县| 黄石市| 江津市| 大竹县| 民勤县| 石家庄市| 拉萨市| 新宾| 咸丰县| 徐闻县| 名山县| 嘉定区| 博野县| 交口县| 板桥市| 南雄市| 德清县| 大名县| 汝南县| 广宗县| 玉树县| 福州市| 新野县| 山阳县| 朝阳区| 连江县| 黄梅县| 枝江市| 岑溪市| 兴山县| 辽中县| 公主岭市| 临澧县| 克什克腾旗| 新余市| 綦江县| 翁源县| 佳木斯市| 金堂县|