Home  >  Article  >  Web Front-end  >  Share an example of using captchapng to generate image verification code in Nodejs

Share an example of using captchapng to generate image verification code in Nodejs

零下一度
零下一度Original
2017-05-19 09:28:101893browse

This article mainly introduces the use of captchapng module in Nodejs to implement image verification codes. It is of great practical value. Friends in need can refer to the

Nodejs project. I encountered difficulties when making image verification codes. Nodejs does not have an image library. There will be in the future, but not now.

After searching around the Internet, there are several solutions:

1. Use a third-party verification code program. Sometimes, the project may not allow it;

2. Use Java or PHP to generate images, call Nodejs, and use Redies to share in the middle;

Both methods are not ideal. Fortunately, I finally found a library that can support Nodejs image verification codes, although it only supports numbers. But it's not bad either. The principle is to use the Base64 image encoding method.

The Gighub address of this library is: github.com/GeorgeChan/captchapng

The usage methods are all on this homepage, but I will add them here:

1. In the Node project Add the captchapng module to package.json;

2. Use the following code:

/**
 * 图片验证码

 * @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,&#39;base64&#39;);

  res.writeHead(200, {

    &#39;Content-Type&#39;: &#39;image/png&#39;

  });
  res.end(imgbase64);

}

3. Write a path to this controller, and the page can be directly placed in the img tag The src attribute has been added to it.

In this way, the image verification code of Nodejs is solved. I hope Nodejs will supplement the missing libraries as soon as possible.

【Related recommendations】

1. Free js online video tutorial

2. JavaScript Chinese Reference Manual

3. php.cn Dugu Jiujian (3) - JavaScript video tutorial

The above is the detailed content of Share an example of using captchapng to generate image verification code in Nodejs. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn