ホームページ  >  記事  >  ウェブフロントエンド  >  Node.js を使用して WeChat ウォールを開発する方法

Node.js を使用して WeChat ウォールを開発する方法

php中世界最好的语言
php中世界最好的语言オリジナル
2018-03-26 09:18:201692ブラウズ

今回はNode.jsWeChatウォールの開発方法と、Node.jsでWeChatウォールを開発する際の注意点についてお届けします。実際の事例を見てみましょう。

サーバーの有効性を確認します

WeChat サブスクリプション アカウントを通じてユーザーからサーバーに送信されたメッセージを受信します

受信した XML テキスト メッセージ形式を JSON に解析します

テンプレートを使用して、ユーザーに応答する XML テキスト メッセージを構築します

受信したメッセージを WebSocket サービスのブロードキャストに送信します

メッセージ送信者の基本的なユーザー情報 (名前とアバター) を取得します

WeChat サービスは一般に 2 つのカテゴリに分けられ、1 つはメッセージ サービス、もう 1 つはデータ サービスです。

メッセージング サービスは、ユーザーが 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 暗号化用に 3 つのパラメータ

string を 1 つの文字列に結合します //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 を真似てサービスにリクエストを投稿することができます

)。

//noverify.js/**

トークン検証は、リクエストが本物で有効であることを確認するためのものです。WeChat 自体はトークンを検証しません。

開発者サーバーは検証なしで直接 echostr を返すこともできます。
ただし、これは、サードパーティも簡単にリクエストを偽造できることを意味します。 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 中国語 Web サイトの他の関連記事にも注目してください。

推奨読書:

Laravelはマルチユーザー認証システムを実装

SQLインジェクションを防ぐためのPHPデータセキュリティメソッド

複雑な検証コード(傾き、正弦波干渉線、貼り付け、回転検証)を生成する

以上がNode.js を使用して WeChat ウォールを開発する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。