node-weixin服务器沟校验模块
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
lib
test
.editorconfig
.gitattributes
.gitignore
.travis.yml
LICENSE
README.md
gulpfile.js
package.json

README.md

node-weixin-auth NPM version Build Status Dependency Status Coverage percentage

微信服务器Auth模块是(node-weixin-api 或者 node-weixin-express)的一个子项目。 它提供了几个重要的方法

tokenize: 用于跟服务器验证配置信息

determine: 用于自动tokenize所有的api请求,而不需要手动在超时时重新请求,通过设置GAP的时间,降低失败率

ips: 获取服务IP列表

ack: 用于服务器有效性验证

交流QQ群: 39287176

Installation

$ npm install --save node-weixin-auth

Usage

var nodeWeixinAuth = require('node-weixin-auth');
var settings = require('node-weixin-settings');

var app = {
  id: '',
  secret: '',
  token: ''
};

// 调整TIME_GAP来避免重复请求
// 默认是500秒,基本上不会出现失效的情况
nodeWeixinAuth.TIME_GAP = 60;

//手动得到accessToken
nodeWeixinAuth.tokenize(settings, app, function (error, json) {
  var accessToken = json.access_token;
});

//自动获得accessToken,并发送需要accessToken的请求
nodeWeixinAuth.determine(settings, app, function () {
  //这里添加发送请求的代码
});

//获取服务器IP
nodeWeixinAuth.ips(settings, app, function (error, data) {
  //error == false
  //data.ip_list获取IP列表
});


//与微信对接服务器的验证
var errors = require('web-errors').errors;
var request = require('supertest');
var express = require('express');
var bodyParser = require('body-parser');

var server = express();

server.use(bodyParser.urlencoded({extended: false}));
server.use(bodyParser.json());

// 微信服务器返回的ack信息是HTTP的GET方法实现的
server.get('/weixin/ack', function (req, res) {
  var data = nodeWeixinAuth.extract(req.query);
  nodeWeixinAuth.ack(app.token, data, function (error, data) {
    if (!error) {
      res.send(data);
      return;
    }
    switch (error) {
      case 1:
        res.send(errors.INPUT_INVALID);
        break;
      case 2:
        res.send(errors.SIGNATURE_NOT_MATCH);
        break;
      default:
        res.send(errors.UNKNOWN_ERROR);
        break;
    }
  });
});

License

Apache-2.0 © node-weixin