wechat.js 3.4 KB

123456789101112131415161718192021222324252627282930
  1. "use strict";
  2. // Helper functions for accessing the WeChat Graph API.
  3. const httpsRequest = require('./httpsRequest');
  4. var Parse = require('parse/node').Parse;
  5. // Returns a promise that fulfills iff this user id is valid.
  6. function validateAuthData(authData) {
  7. return graphRequest('auth?access_token=' + authData.access_token + '&openid=' + authData.id).then(function (data) {
  8. if (data.errcode == 0) {
  9. return;
  10. }
  11. throw new Parse.Error(Parse.Error.OBJECT_NOT_FOUND, 'wechat auth is invalid for this user.');
  12. });
  13. }
  14. // Returns a promise that fulfills if this app id is valid.
  15. function validateAppId() {
  16. return Promise.resolve();
  17. }
  18. // A promisey wrapper for WeChat graph requests.
  19. function graphRequest(path) {
  20. return httpsRequest.get('https://api.weixin.qq.com/sns/' + path);
  21. }
  22. module.exports = {
  23. validateAppId,
  24. validateAuthData
  25. };
  26. //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJodHRwc1JlcXVlc3QiLCJyZXF1aXJlIiwiUGFyc2UiLCJ2YWxpZGF0ZUF1dGhEYXRhIiwiYXV0aERhdGEiLCJncmFwaFJlcXVlc3QiLCJhY2Nlc3NfdG9rZW4iLCJpZCIsInRoZW4iLCJkYXRhIiwiZXJyY29kZSIsIkVycm9yIiwiT0JKRUNUX05PVF9GT1VORCIsInZhbGlkYXRlQXBwSWQiLCJQcm9taXNlIiwicmVzb2x2ZSIsInBhdGgiLCJnZXQiLCJtb2R1bGUiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL0FkYXB0ZXJzL0F1dGgvd2VjaGF0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIEhlbHBlciBmdW5jdGlvbnMgZm9yIGFjY2Vzc2luZyB0aGUgV2VDaGF0IEdyYXBoIEFQSS5cbmNvbnN0IGh0dHBzUmVxdWVzdCA9IHJlcXVpcmUoJy4vaHR0cHNSZXF1ZXN0Jyk7XG52YXIgUGFyc2UgPSByZXF1aXJlKCdwYXJzZS9ub2RlJykuUGFyc2U7XG5cbi8vIFJldHVybnMgYSBwcm9taXNlIHRoYXQgZnVsZmlsbHMgaWZmIHRoaXMgdXNlciBpZCBpcyB2YWxpZC5cbmZ1bmN0aW9uIHZhbGlkYXRlQXV0aERhdGEoYXV0aERhdGEpIHtcbiAgcmV0dXJuIGdyYXBoUmVxdWVzdCgnYXV0aD9hY2Nlc3NfdG9rZW49JyArIGF1dGhEYXRhLmFjY2Vzc190b2tlbiArICcmb3BlbmlkPScgKyBhdXRoRGF0YS5pZCkudGhlbihcbiAgICBmdW5jdGlvbiAoZGF0YSkge1xuICAgICAgaWYgKGRhdGEuZXJyY29kZSA9PSAwKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcihQYXJzZS5FcnJvci5PQkpFQ1RfTk9UX0ZPVU5ELCAnd2VjaGF0IGF1dGggaXMgaW52YWxpZCBmb3IgdGhpcyB1c2VyLicpO1xuICAgIH1cbiAgKTtcbn1cblxuLy8gUmV0dXJucyBhIHByb21pc2UgdGhhdCBmdWxmaWxscyBpZiB0aGlzIGFwcCBpZCBpcyB2YWxpZC5cbmZ1bmN0aW9uIHZhbGlkYXRlQXBwSWQoKSB7XG4gIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbn1cblxuLy8gQSBwcm9taXNleSB3cmFwcGVyIGZvciBXZUNoYXQgZ3JhcGggcmVxdWVzdHMuXG5mdW5jdGlvbiBncmFwaFJlcXVlc3QocGF0aCkge1xuICByZXR1cm4gaHR0cHNSZXF1ZXN0LmdldCgnaHR0cHM6Ly9hcGkud2VpeGluLnFxLmNvbS9zbnMvJyArIHBhdGgpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgdmFsaWRhdGVBcHBJZCxcbiAgdmFsaWRhdGVBdXRoRGF0YSxcbn07XG4iXSwibWFwcGluZ3MiOiI7O0FBQUE7QUFDQSxNQUFNQSxZQUFZLEdBQUdDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQztBQUM5QyxJQUFJQyxLQUFLLEdBQUdELE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQ0MsS0FBSzs7QUFFdkM7QUFDQSxTQUFTQyxnQkFBZ0JBLENBQUNDLFFBQVEsRUFBRTtFQUNsQyxPQUFPQyxZQUFZLENBQUMsb0JBQW9CLEdBQUdELFFBQVEsQ0FBQ0UsWUFBWSxHQUFHLFVBQVUsR0FBR0YsUUFBUSxDQUFDRyxFQUFFLENBQUMsQ0FBQ0MsSUFBSSxDQUMvRixVQUFVQyxJQUFJLEVBQUU7SUFDZCxJQUFJQSxJQUFJLENBQUNDLE9BQU8sSUFBSSxDQUFDLEVBQUU7TUFDckI7SUFDRjtJQUNBLE1BQU0sSUFBSVIsS0FBSyxDQUFDUyxLQUFLLENBQUNULEtBQUssQ0FBQ1MsS0FBSyxDQUFDQyxnQkFBZ0IsRUFBRSx1Q0FBdUMsQ0FBQztFQUM5RixDQUNGLENBQUM7QUFDSDs7QUFFQTtBQUNBLFNBQVNDLGFBQWFBLENBQUEsRUFBRztFQUN2QixPQUFPQyxPQUFPLENBQUNDLE9BQU8sQ0FBQyxDQUFDO0FBQzFCOztBQUVBO0FBQ0EsU0FBU1YsWUFBWUEsQ0FBQ1csSUFBSSxFQUFFO0VBQzFCLE9BQU9oQixZQUFZLENBQUNpQixHQUFHLENBQUMsZ0NBQWdDLEdBQUdELElBQUksQ0FBQztBQUNsRTtBQUVBRSxNQUFNLENBQUNDLE9BQU8sR0FBRztFQUNmTixhQUFhO0VBQ2JWO0FBQ0YsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==