通过原生 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 端口。
这个是新人贴。:)
1
zonghua 2015-09-06 09:03:06 +08:00 via iPhone
咦,我记得验证是需要两步的,还要一个链表翻转
|
2
song940 2015-09-06 09:32:38 +08:00 via iPhone
|