>  기사  >  웹 프론트엔드  >  Node.js로 WeChat 담벼락을 개발하는 방법

Node.js로 WeChat 담벼락을 개발하는 방법

php中世界最好的语言
php中世界最好的语言원래의
2018-03-26 09:18:201759검색

이번에는 Node.jsWeChat 월을 개발하는 방법과 Node.js로 WeChat 월을 개발할 때 Notes가 무엇인지에 대해 소개해 드리겠습니다.

서버의 유효성을 확인하세요

WeChat 구독 계정을 통해 사용자가 서버로 보낸 메시지를 수신하세요

수신된 XML 문자 메시지 형식을 JSON으로 구문 분석

템플릿을 사용하여 사용자에게 응답하는 XML 문자 메시지를 구성하세요

수신된 메시지를 WebSocket 서비스 브로드캐스트에 담기

메시지 발신자의 기본 사용자 정보(이름 및 아바타) 가져오기

WeChat 서비스는 일반적으로 메시지 서비스와 데이터 서비스 두 가지로 구분됩니다.

메시징 서비스는 사용자가 WeChat 서비스 계정에서 메시지를 보낸 후 WeChat 서비스가 해당 메시지를 개발자 서버로 푸시하므로 WeChat에서 적극적으로 시작하고 개발자 서버에서 수동적으로 수신합니다.

Node.js로 WeChat 담벼락을 개발하는 방법

메시지 서비스의 데이터 형식은 XML입니다. 데이터 전송의 신뢰성과 유효성은 WeChat 서비스와 개발자 서버 간에 합의된 토큰을 통해 보장됩니다.

//verify.jsvar PORT = 9529;var http = require('http');var qs = require('qs');var TOKEN = 'yuntu';function c
heckSignature(params, token){  //1. 将token、timestamp、nonce三个参数进行字典序排序
//2. sha1 암호화를 위해 세 개의 매개변수

string을 하나의 문자열로 연결합니다 //3. 개발자는 암호화된 문자열을 서명과 비교하여 요청이 WeChat

 var key = [token, params.timestamp, params.nonce].sort().join('');  var sha1 = require('crypto').createHash('sha1');
  sha1.update(key);  
  return  sha1.digest('hex') == params.signature;
}var server = http.createServer(function (request, response) {  
  //解析URL中的query部分,用qs模块(npm install qs)将query解析成json
  var query = require('url').parse(request.url).query;  var params = qs.parse(query);  console.log(params);  console.log("token-->", TOKEN);  
  if(checkSignature(params, TOKEN)){
    response.end(params.echostr);
  }else{
    response.end('signature fail');
  }
});
server.listen(PORT);console.log("Server runing at port: " + PORT + ".");
에서 온 것인지 확인할 수 있습니다. 메시지의 소스가 실제로 WeChat이고 위조되지 않았는지 개발자 서버에 확인하는 데만 사용됩니다(다른 사람들은 특정 토큰을 모르기 때문에). 즉, 메시지 개시자로서 WeChat은 확인이 필요하지 않습니다. 작성자는 게으르고 확인을 수행하지 않을 수도 있습니다(결과적으로 다른 사람들이 WeChat을 모방하여 서비스

post 요청에 요청을 게시할 수 있음).

//noverify.js/**

토큰 확인은 요청이 진짜이고 유효한지 확인하기 위한 것입니다. WeChat 자체는 토큰을 확인하지 않습니다.
개발자 서버는 확인 없이 직접 echostr을 반환할 수도 있습니다.
하지만 이는 제3자도 쉽게 요청을 위조할 수 있음을 의미합니다. WeChat을 생성하여 개발자 서버로 전송

*/var PORT = 9529;var http = require('http');var qs = require('qs');var server = http.createServer(function (request, response) {  var query = require('url').parse(request.url).query;  var params = qs.parse(query);
  response.end(params.echostr);
});
server.listen(PORT);console.log("Server runing at port: " + PORT + ".");
WeChat 서비스 계정의 서버를 개발 서버의 URL로 구성하면 WeChat 서비스 계정에서 메시지를 받을 수 있습니다

읽고 나면 방법을 마스터하신 것 같습니다. 이 기사의 경우, 더 흥미로운 정보를 보려면 오세요. PHP 중국어 웹사이트의 다른 관련 기사도 주목하세요!

추천 도서:

라라벨은 다중 사용자 인증 시스템을 구현합니다

SQL 주입을 방지하기 위한 PHP 데이터 보안 방식

복잡한(기울기, 정현파 간섭선, 붙여넣기, 회전 확인) 인증 코드 생성

위 내용은 Node.js로 WeChat 담벼락을 개발하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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