登录

获取 code

  1. wx.login({
  2. success: res => {
  3. console.log(res);
  4. }
  5. })

登录凭证校验

  1. MiniProgramApi.code2Session(ApiConfigKit.getAppId, ApiConfigKit.getApiConfig.getAppScrect, code)
  2. .then((data) => {
  3. res.send(data);
  4. }).catch((error) => console.log(error))

获取用户信息

  1. wx.getUserInfo({
  2. withCredentials: true,
  3. success: res=>{
  4. console.log(res);
  5. }
  6. })

签证签名并解密 encryptedData

  1. signature = 'bc404eedffb75c8d3cf3346acaf92466a7a793a1';
  2. let rawData = '{"nickName":"Javen","gender":1,"language":"zh_CN","city":"Shenzhen","province":"Guangdong","country":"China","avatarUrl":"https://wx.qlogo.cn/mmopen/vi_32/icc2nhPAgI52Yx52hWXknQzYC122WeVIAoE1F9Tia3ZFmj8TUEr6M4rY10GDf4qTFT9RvdM3icDibq9BQ7kooYMW5g/132"}';
  3. let session_key = 'syOEZf6faXl3JqAKh9FfvQ==';
  4. let iv = 'wGZm1/t99wRHb4oiwDbybQ==';
  5. let encryptedData = 'r9UTG7Yo3xlXZ1++2atDr/7So5b+GevtC4ZkxXeL+vCjYoMp50YB004IcCuPdbZlzd06Pvx0Yd6B92188ttbvkhCYb2uE8Wa8Nr1a/M72984gHj37TX4dX5f8/IMAXGqSPOMVjx14LZPMg8YDFYY5lUlYtHRvsOLl8zboZ9fR2B5+p3juPsnzyxuZZkUHYclRJ3qQzffZHMrelP7IHdMbUHVmsgpfwJc5Is6zhSpi/DKjHJxdIfHjl0wusP1Dy55WymSfxUfaEi63Fln9m8fUXF0mZprbFGl54sxKdabQuaQIL7aeETpMhNEmWBdtIetTuC3bkfBXLlW1b/JkUjBRdU2ZF4tRKHT24I6LnwfQMmXrEcbHA0JdU2CvU/TeF+iqYud4mgo115THVy76jxIPJXm65zbLuUVG6CvzOUSEOyWVSNQ7nbcwA3qrDiEuL4nYPusyoQpsZCxs+FUTEImmATD12R0/6Q1N557Ica59Wo=';
  6. let key = Buffer.from(session_key, 'base64');
  7. let baseIv = Buffer.from(iv, 'base64');
  8. let signature2 = Kits.sha1(rawData + session_key).toLocaleLowerCase();
  9. if (signature2 === signature) {
  10. let ecrypt = Kits.aes128cbcDecrypt(key, baseIv, encryptedData);
  11. res.send(ecrypt);
  12. } else {
  13. res.send('签名错误');
  14. }