>  기사  >  웹 프론트엔드  >  Nodejs에서 이미지 확인 코드를 생성하기 위해 captchapng를 사용하는 예를 공유하세요.

Nodejs에서 이미지 확인 코드를 생성하기 위해 captchapng를 사용하는 예를 공유하세요.

零下一度
零下一度원래의
2017-05-19 09:28:101899검색

이 글에서는 주로 Nodejs에서 captchapng 모듈을 사용하여 이미지 확인 코드를 구현하는 방법을 소개합니다. 도움이 필요한 친구들은

Nodejs 프로젝트를 참고하면 됩니다. 암호. Nodejs에는 이미지 라이브러리가 없습니다. 미래에는 있을 것이지만 지금은 아닙니다.

인터넷에서 검색한 결과 여러 가지 해결 방법이 있습니다.

1. 때로는 프로젝트에서 이를 허용하지 않는 경우도 있습니다. 2. Java 또는 PHP를 사용하여 이미지를 생성하고 Nodejs로 호출하고 Redies와 공유합니다.

두 방법 모두 이상적이지는 않습니다. 다행히도 Nodejs 이미지 확인 코드를 지원할 수 있는 라이브러리를 마침내 찾았습니다. 숫자만 지원하지만 나쁘지 않습니다. Base64 이미지 인코딩 방식을 사용하는 것이 원칙입니다.

이 라이브러리의 Gighub 주소는 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,&#39;base64&#39;);

  res.writeHead(200, {

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

  });
  res.end(imgbase64);

}

3. 이 컨트롤러에 대한 경로를 작성하면 페이지를 직접 배치할 수 있습니다.

img 태그

에 src 속성이 추가되었습니다. 이렇게 해서 Nodejs의 이미지 검증 코드가 하루빨리 해결되었으면 좋겠습니다.

[관련 추천]

1.

무료 js 온라인 동영상 튜토리얼

JavaScript 중국어 참조 매뉴얼

3.

php.cn Dugu Jiujian (3) - JavaScript 비디오 튜토리얼

위 내용은 Nodejs에서 이미지 확인 코드를 생성하기 위해 captchapng를 사용하는 예를 공유하세요.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.