zoukankan      html  css  js  c++  java
  • 微信小程序AES解密失败

    微信小程序分享群获取群id时后端接口返回“微信AES解密失败”,后来定位到原因是服务端用于解密的session_key失效。用户获取到openID存在缓存后,就不会每次login获取登录态了,这样会导致登录态失效,即后端维护的session_key失效。分享群后获取的加密信息是老的session_key+openId构成,服务端解密时的session_key要和分享前一致。

    在需要获取openGid的页面:

    app.getOpenId(this.route, this.data.pageOptions).then((res) => {
    wx.login({
    success(res) {
    // 刷新服务端session_key
    api.ajax('GET', api.config_url.refreshWxUserSessionKey, {
    appId: api.appId,
    code: res.code,
    }).then(res => {
    const { status, message } = res.data;
    if (status) {
    console.log('登录态刷新成功');
    }
    }, res => { });
    }
    })
    // 其他业务逻辑
    ...
    app.js
    //获取openGid
    getOpenGid(shareTicket, status, callback) {
    var self = this;
    wx.getShareInfo({
    shareTicket: shareTicket,
    complete(res) {
    var param = {
    "iv": res.iv,
    "encryptedData": res.encryptedData,
    "appId": self.appId,
    "openId": wx.getStorageSync("openId")
    };
    self.getAesDecryptData(callback, param);
    }
    });
    },
    getAesDecryptData(callback, param) {
    const self = this;
    this.ajax('POST', this.config_url.aesDecryptData, param).then(res => {
    console.log(res);
    if (res.data.entry && res.data.entry.openGId) {
    wx.setStorageSync("openGId", res.data.entry.openGId);
    callback() && callback();
    } else {
    console.log('获取群id失败');
    wx.login({
    success(res) {
    self.ajax('GET', self.config_url.refreshWxUserSessionKey, {
    appId: self.appId,
    code: res.code,
    }).then(res => {
    const { status, message } = res.data;
    if (status) {
    console.log('登录态刷新成功');
    }
    }, res => { });
    }
    });
    wx.removeStorageSync('openGId');
    }
    });
    },
  • 相关阅读:
    转 configure: error: Cannot find ldap.h
    DDoS(Distributed Denial of Service,分布式拒绝服务)
    j2ee 1.5和1.6的区别
    机器学习
    免安装版Tomcat6.0启动方法
    mysql补充(2)常用sql语句
    mysql补充(4)数据完整性
    mysql补充(3)优化sql语句查询常用的30种方法
    mysql补充(1)校对集utf8_unicode_ci与utf8_general_ci
    jdbc(1)(一)
  • 原文地址:https://www.cnblogs.com/jikaiyang/p/9049918.html
Copyright © 2011-2022 走看看