通过原生 Node.js 实现微信 Token 验证。
//引入必要包
var http = require ('http'),
url = require ('url'),
crypto = require ('crypto');
//创建服务器
http.createServer (function (req, res ) {
res.writeHead (200, {
'Content-Type': 'text/html; charset=UTF-8'
});
// 参数转 sha1 的一系列处理
var query = url.parse (req.url, true ).query,
token = 'YOUR TOKEN',
array = [token, query.timestamp, query.nonce],
key = array.sort ().join (''),
sha1 = crypto.createHash ('sha1').update (key ).digest ('hex');
// sha1 处理结束
if (sha1 == query.signature ) {
res.write (query.echostr ); // 返回 echostr 实现验证
} else {
res.write ('Error, Token verification failed.'); // 返回错误信息
}
res.end ();
}).listen ('62002'); // 监听端口,通过 Apache 或者 Nginx 转发,微信只支持 80 端口。
这个是新人贴。:)
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.