Nodejs中使用captchapng模塊生成圖片驗(yàn)證碼
Nodejs項(xiàng)目,在做圖片驗(yàn)證碼的時(shí)候遇到了難題。Nodejs沒(méi)有圖片庫(kù),以后會(huì)有,但是現(xiàn)在沒(méi)有。
網(wǎng)絡(luò)上搜索一圈,有幾個(gè)解決方案:
1、采用第三方驗(yàn)證碼程序,有的時(shí)候,項(xiàng)目可能不允許;
2、使用Java或者PHP生成圖片,Nodejs調(diào)用,中間采用Redies共享;
這兩種方式都不太理想,好在終于找到了可以支持Nodejs圖片驗(yàn)證碼的一個(gè)庫(kù),雖然只支持?jǐn)?shù)字,但是也還不錯(cuò)。原理是使用Base64的圖片編碼方式。
這個(gè)庫(kù)的Gighub地址是:https://github.com/GeorgeChan/captchapng
使用方法這個(gè)主頁(yè)上都有,這里還是補(bǔ)充一下:
1、在Node項(xiàng)目的package.json中增加captchapng模塊;
2、使用如下代碼:
/** * 圖片驗(yàn)證碼 * @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、給這個(gè)controller寫(xiě)一個(gè)路徑,頁(yè)面就可以直接在img標(biāo)簽里面增加src屬性了。
這樣就搞定了Nodejs的圖片驗(yàn)證碼,希望Nodejs盡快補(bǔ)充缺乏的庫(kù)。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
npm安裝yarn后找不到y(tǒng)arn報(bào)錯(cuò)的解決過(guò)程
這篇文章主要給大家介紹了關(guān)于npm安裝yarn后找不到y(tǒng)arn報(bào)錯(cuò)的解決過(guò)程,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)遇到同樣問(wèn)題的同學(xué)具有一定的參考性,需要的朋友可以參考下2023-04-04Node.js成為Web應(yīng)用開(kāi)發(fā)最佳選擇的原因
本篇文章給大家詳細(xì)分析了Node.js 成為 Web 應(yīng)用開(kāi)發(fā)最佳選擇的十個(gè)原因,對(duì)此有需要的朋友參考下。2018-02-02Nest.js使用multer實(shí)現(xiàn)文件上傳功能
這篇文章主要為大家詳細(xì)介紹了Nest.js鵝湖使用multer實(shí)現(xiàn)文件上傳功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-03-03koa2上傳文件及https配置實(shí)現(xiàn)教程
這篇文章主要為大家介紹了koa2上傳文件及https配置實(shí)現(xiàn)教程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06基于node.js實(shí)現(xiàn)微信支付退款功能
在微信開(kāi)發(fā)中有有付款就會(huì)有退款,這樣的功能非常常見(jiàn),這篇文章主要介紹了node.js實(shí)現(xiàn)微信支付退款功能,需要的朋友可以參考下2017-12-12