Skip to content

Commit

Permalink
refine the decryptMiniProgramUser
Browse files Browse the repository at this point in the history
  • Loading branch information
JacksonTian committed Oct 7, 2018
1 parent 74b95f4 commit 1410101
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 34 deletions.
32 changes: 17 additions & 15 deletions lib/oauth.js
@@ -1,9 +1,10 @@
'use strict';

var urllib = require('urllib');
var wrapper = require('./util').wrapper;
var extend = require('util')._extend;
var querystring = require('querystring');

var wrapper = require('./util').wrapper;
var WxBizDataCrypt = require('./wx_biz_data_crypt');

var AccessToken = function (data) {
Expand Down Expand Up @@ -326,16 +327,10 @@ OAuth.prototype._getUser = function (options, accessToken, callback) {
* @param {Object} options 需要解密的对象
* @param {String} options.encryptedData 从小程序中获得的加密过的字符串
* @param {String} options.iv 从小程序中获得的加密算法初始向量
* @param {Function} callback 回调函数
*/
OAuth.prototype.decryptMiniProgramUser = function (options, callback) {
try {
var decrypter = new WxBizDataCrypt(this.appid, options.sessionKey);
var user = decrypter.decryptData(options.encryptedData, options.iv);
}catch (e) {
return callback(new Error('error occurred when trying to decrypt mini-program user data'));
}
return callback(null, user);
OAuth.prototype.decryptMiniProgramUser = function (options) {
var decrypter = new WxBizDataCrypt(this.appid, options.sessionKey);
return decrypter.decryptData(options.encryptedData, options.iv);
};

/**
Expand Down Expand Up @@ -480,11 +475,18 @@ OAuth.prototype.getUserByCode = function (options, callback) {
return callback(err);
}
var openid = result.data.openid;
that.decryptMiniProgramUser({
openid: openid,
encryptedData: options.encryptedData,
iv: options.iv,
}, callback);
var user;
try {
user = that.decryptMiniProgramUser({
openid: openid,
encryptedData: options.encryptedData,
iv: options.iv,
});
} catch (ex) {
return callback(ex);
}

callback(null, user);
});
} else {
this.getAccessToken(code, function (err, result) {
Expand Down
2 changes: 1 addition & 1 deletion package.json
Expand Up @@ -15,7 +15,7 @@
"wechat"
],
"dependencies": {
"urllib": "2.7.0"
"urllib": "^2.30.0"
},
"devDependencies": {
"coveralls": "*",
Expand Down
33 changes: 15 additions & 18 deletions test/oauth.test.js
Expand Up @@ -491,19 +491,17 @@ describe('oauth.js', function () {
});
});

muk(api, 'decryptMiniProgramUser', function (code, callback) {
process.nextTick(function () {
callback(null, {
openId: 'OPENID',
nickName: 'NICKNAME',
gender: 0,
city: 'CITY',
province: 'PROVINCE',
country: 'COUNTRY',
avatarUrl: 'AVATARURL',
unionId: 'UNIONID',
});
});
muk(api, 'decryptMiniProgramUser', function (code) {
return {
openId: 'OPENID',
nickName: 'NICKNAME',
gender: 0,
city: 'CITY',
province: 'PROVINCE',
country: 'COUNTRY',
avatarUrl: 'AVATARURL',
unionId: 'UNIONID',
};
});
});

Expand Down Expand Up @@ -594,11 +592,10 @@ describe('oauth.js', function () {
describe('decryptMiniProgramUser', function () {
describe('should not ok', function () {
var api = new OAuth('appid', 'secret', null, null, true);
it('should not ok with invalid data', function (done) {
api.decryptMiniProgramUser({}, function (err, result) {
expect(err).to.be.a(Error);
done();
});
it('should not ok with invalid data', function () {
expect(function () {
api.decryptMiniProgramUser({});
}).to.throwError();
});
});
});
Expand Down

0 comments on commit 1410101

Please sign in to comment.