小程序在js模块调用wx.getUserInfo得到的encryptedData无法解密?

以下示例是我做的测试,第一种是无法解密的,第二种是可以解密的,为了简化代码去掉了wx.getSetting的使用,实际是有的

无法解密:

// /app.js
const test = require("./utils/test.js");
App({
    onLaunch(){
        test.autoLogin()
    }
})

// /utils/test.js
module.exports = {
    autoLogin(){
        wx.getUserInfo({
          withCredentials: true,
          complete: (res)=>{
              //在这里得到的 res.encryptedData 和 res.iv 发给后端,后端解密失败
          }
        })
    }
}

可以解密:

// /app.js
const test = require("./utils/test.js");
App({
    onLaunch(){
        test.autoLogin()
    },
    
    getUserInfo(fn){
      wx.getUserInfo({
        withCredentials: true,
        complete: fn
      })
    },
})

// /utils/test.js
const app = getApp()
module.exports = {
    autoLogin(fn){
        app.getUserInfo((res)=>{
              //在这里得到的 res.encryptedData 和 res.iv 发给后端,后端则可以解密!
          })
    }
}

请问这是为什么?后端没理由也没办法判断我是用哪种方法获得密文的呀...咋就出现了两种情况呢?第二种方法感觉好坑,都要封装一个库了,结果还要外部给提供一个函数,有什么办法能让第一种方法也能获取到正确的密文?

阅读 2.9k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题