Heim >Web-Frontend >js-Tutorial >So entwickeln Sie eine WeChat-Wall mit Node.js

So entwickeln Sie eine WeChat-Wall mit Node.js

php中世界最好的语言
php中世界最好的语言Original
2018-03-26 09:18:201778Durchsuche

Dieses Mal werde ich Ihnen Node.js zeigen, wie Sie eine WeChat-Wand entwickeln, welche Vorsichtsmaßnahmen für die Entwicklung einer WeChat-Wand mit Node.js gelten, das Folgende ist ein praktischer Fall, Werfen wir einen Blick darauf.

Servergültigkeit überprüfen

Nachrichten empfangen, die von Benutzern über das WeChat-Abonnementkonto an den Server gesendet wurden

Das empfangene XML-Textnachrichtenformat in JSON analysieren

Verwenden Sie die Die Vorlage erstellt eine XML-Textnachricht, die dem Benutzer antwortet.

Sendet die empfangene Nachricht über den WebSocket-Dienst.

Ruft die grundlegenden Informationen des Benutzers (Name und Avatar) über den Absender der Nachricht ab.

WeChat-Dienste Im Allgemeinen werden sie in zwei Kategorien unterteilt: eine ist der Nachrichtendienst und die andere ist der Datendienst.

Der Messaging-Dienst ist ein Benutzer, der eine Nachricht im WeChat-Dienstkonto sendet und der WeChat-Dienst die Nachricht dann an den Entwicklerserver weiterleitet, sodass sie aktiv von WeChat und passiv initiiert wird vom Entwicklerserver empfangen.

So entwickeln Sie eine WeChat-Wall mit Node.js

Das Datenkörperformat des Nachrichtendienstes ist XML. Die Authentizität und Gültigkeit der Datenübertragung wird durch ein vereinbartes Token zwischen dem WeChat-Dienst und dem Entwicklerserver gewährleistet.

//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. Fügen Sie die drei Parameter string zu einem String für die SHA1-Verschlüsselung zusammen
//3. Entwickler können den verschlüsselten String mit einem Signaturvergleich erhalten, der angibt, dass die Anfrage erfolgt kommt von 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 + ".");

Tatsächlich wird die Token-Überprüfung nur verwendet, um gegenüber dem Entwicklerserver zu überprüfen, ob die Quelle der Nachricht tatsächlich WeChat und nicht gefälscht ist (da andere das spezifische Token nicht kennen), WeChat Als Initiator der Nachricht ist keine Überprüfung erforderlich. Mit anderen Worten: Entwickler können auch faul sein und keine Überprüfung durchführen (die Folge ist, dass andere WeChat nachahmen und Anfragen an den Dienst senden können ).

//noverify.js/**


Die TOKEN-Überprüfung soll sicherstellen, dass die Anfrage authentisch und gültig ist.
Der Entwicklerserver kann echostr auch ohne Überprüfung zurückgeben Dies bedeutet, dass auch ein Dritter problemlos Anfragen fälschen kann, die sich als WeChat ausgeben, und diese an den Entwicklerserver senden

*/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 + ".");
Konfigurieren Sie den Server des WeChat-Dienstkontos als URL des Entwicklungsservers , und Sie können Nachrichten vom WeChat-Dienstkonto empfangen

Ich glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website!

Empfohlene Lektüre:

Laravel implementiert ein Mehrbenutzer-Authentifizierungssystem

Datensicherheitsmethode für PHP zur Verhinderung von SQL-Injection

Generieren Sie einen komplexen Verifizierungscode (Neigung, Sinusinterferenzlinie, Einfügen, Rotationsüberprüfung)

Das obige ist der detaillierte Inhalt vonSo entwickeln Sie eine WeChat-Wall mit Node.js. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn