ホームページ >ウェブフロントエンド >jsチュートリアル >Node.js を使用して WeChat ウォールを開発する方法
今回はNode.jsWeChatウォールの開発方法と、Node.jsでWeChatウォールを開発する際の注意点についてお届けします。実際の事例を見てみましょう。
サーバーの有効性を確認します
WeChat サブスクリプション アカウントを通じてユーザーからサーバーに送信されたメッセージを受信します
受信した XML テキスト メッセージ形式を JSON に解析します
テンプレートを使用して、ユーザーに応答する XML テキスト メッセージを構築します
受信したメッセージを WebSocket サービスのブロードキャストに送信します
メッセージ送信者の基本的なユーザー情報 (名前とアバター) を取得します
WeChat サービスは一般に 2 つのカテゴリに分けられ、1 つはメッセージ サービス、もう 1 つはデータ サービスです。
メッセージング サービスは、ユーザーが WeChat サービス アカウントでメッセージを送信することです。その後、WeChat サービスがメッセージを開発者サーバーにプッシュするため、メッセージは 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 を真似てサービスにリクエストを投稿することができます トークン検証は、リクエストが本物で有効であることを確認するためのものです。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 + ".");
これを読んで方法をマスターしたと思いますこの記事のケースについては、もっとエキサイティングな情報を入手してください。php 中国語 Web サイトの他の関連記事にも注目してください。
推奨読書:
Laravelはマルチユーザー認証システムを実装SQLインジェクションを防ぐためのPHPデータセキュリティメソッド複雑な検証コード(傾き、正弦波干渉線、貼り付け、回転検証)を生成する以上がNode.js を使用して WeChat ウォールを開発する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。