Commit c211713e authored by 任国军's avatar 任国军

fix wechat decode bug

parent b2bb800d
Pipeline #18004 passed with stage
in 1 minute 6 seconds
......@@ -140,7 +140,7 @@ class UserService extends Service {
const userUuid = ctx.userUuid;
const { avatar, nickname, province, country, sex, city, encryptedData, iv } = input;
// 查找用户是否存在并更新
const user = ctx.classModel.V2.CourseUser.findOne({ where: { uuid: userUuid, is_deleted: 0 } });
const user = await ctx.classModel.V2.CourseUser.findOne({ where: { uuid: userUuid, is_deleted: 0 } });
if (ctx.isEmpty(user)) {
ctx.failed('用户不存在');
}
......
......@@ -153,14 +153,19 @@ class WechatService extends Service {
encryptedData = new Buffer(encryptedData, 'base64');
iv = new Buffer(iv, 'base64');
// 解密
const decipher = crypto.createDecipheriv('aes-128-cbc', sessionKey, iv);
// 设置自动 padding 为 true,删除填充补位
decipher.setAutoPadding(true);
let decoded = decipher.update(encryptedData, 'binary', 'utf8');
decoded += decipher.final('utf8');
decoded = JSON.parse(decoded);
try {
// 解密
const decipher = crypto.createDecipheriv('aes-128-cbc', sessionKey, iv);
// 设置自动 padding 为 true,删除填充补位
decipher.setAutoPadding(true);
var decoded = decipher.update(encryptedData, 'binary', 'utf8');
decoded += decipher.final('utf8');
decoded = JSON.parse(decoded);
} catch (err) {
ctx.failed('Illegal Buffer');
}
return decoded;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment