51Testing软件测试论坛

标题: 微信小程序关于启动登录授权更新从直接调用 [打印本页]

作者: 测试积点老人    时间: 2022-4-19 10:53
标题: 微信小程序关于启动登录授权更新从直接调用
微信小程序关于启动登录授权更新从直接调用wx.getuserinfo改到bottom方式后出现一连串错误请专家帮看下启动登录授权更新从直接调用wx.getuserinfo改到bottom方式后出现一连串错误
  1. var e = require("../../utils/request.js"), t = require("../../utils/navigate.js"), a = require("../../utils/check.js"), n = (require("../../utils/common.js"),
  2. require("../../utils/md5.js")), o = getApp();

  3. Page({
  4. data: {
  5.     shouquan:false,
  6.     loginWay: 0,
  7.     isFirstLogin: !1,
  8.     isGet: !1,
  9.     time: 120,
  10.     phone0: "",
  11.     phone1: "",
  12.     pwd: "",
  13.     code: "",
  14.     isLoginBack: !1,
  15.     isSetPwd: !0,
  16.     userId: ""
  17. },
  18. onLoad: function(e) {
  19.     new (getApp().ToastPannel)();
  20. },
  21. onShow: function() {
  22.     wx.removeStorageSync("PHPSESSID");
  23. },
  24. onHide: function() {
  25.     console.log("onHide");
  26. },
  27. onUnload: function() {
  28.     console.log("onUnload");
  29. },
  30. switchNav: function(e) {
  31.     var t = e.currentTarget.dataset.nav;
  32.     this.setData({
  33.         loginWay: Number(t)
  34.     });
  35. },
  36. getCode: function() {
  37.     var t = this;
  38.     if (this.checkedPhone(this.data.phone0)) {
  39.         var a = {};
  40.         a.type = 3, a.phone = this.data.phone0, a.openid = o.globalData.userInfo.open_id,
  41.         o.globalData.userInfo.open_id && e.request("Api/Login/get_phone_code", a, function(e) {
  42.             var a = e.data;
  43.             if (1 == a.code) {
  44.                 t.setData({
  45.                     isGet: !0
  46.                 });
  47.                 var n = setInterval(function() {
  48.                     t.data.time <= 0 && (t.data.time = 120, clearTimeout(n), t.setData({
  49.                         isGet: !1
  50.                     })), t.setData({
  51.                         time: --t.data.time
  52.                     });
  53.                 }, 1e3);
  54.             } else t.show(a.msg, "", "top");
  55.         });
  56.     }
  57. },
  58. phoneLogin: function() {
  59.     var a = this;
  60.     if (this.checkedPhone(this.data.phone0)) if ("" == this.data.code.trim()) this.show("请填写验证码", "", "top"); else {
  61.         var n = {};
  62.         n.type = 1, n.user_name = this.data.phone0, n.openid = o.globalData.userInfo.open_id,
  63.         n.code = this.data.code, console.log(n), e.request("Api/Login/user_login", n, function(e) {
  64.             var n = e.data;
  65.             if (1 == n.code) if (n.data.is_first_login) a.setData({
  66.                 isFirstLogin: !0
  67.             }), a.data.userId = n.data.user_id; else {
  68.                 var o = a.storageUser(n.data);
  69.                 wx.setStorageSync("user", o), a.data.isLoginBack ? t.nav("navigateBack", 1) : t.nav("switchTab", "../index/index");
  70.             } else a.show(n.msg, "", "top");
  71.         });
  72.     }
  73. },
  74. phoneFirstLogin: function(a) {
  75.     var s = this, i = a.detail.value.phonePwd;
  76.     if (this.checkedPwd(i)) {
  77.         var r = {};
  78.         r.member_id = this.data.userId, r.password = n.hexMD5(n.hexMD5(i + o.pwdFixedStr)),
  79.         console.log(r), e.request("Api/Login/save_user_pwd", r, function(e) {
  80.             var a = e.data;
  81.             if (1 == a.code) {
  82.                 var n = s.storageUser(a.data);
  83.                 wx.setStorageSync("user", n), s.data.isLoginBack ? t.nav("navigateBack", 1) : t.nav("switchTab", "../index/index");
  84.             } else s.show(a.msg, "", "top");
  85.         });
  86.     }
  87. },
  88. userLogin: function() {
  89.     var a = this, s = this;
  90.     if (this.checkedPhone(this.data.phone1) && this.checkedPwd(this.data.pwd)) {
  91.         var i = {};
  92.         i.type = 2, i.user_name = this.data.phone1, i.openid = o.globalData.userInfo.open_id,
  93.         i.code = this.data.code, i.password = n.hexMD5(n.hexMD5(this.data.pwd + o.pwdFixedStr)),
  94.         e.request("Api/Login/user_login", i, function(e) {
  95.             var n = e.data;
  96.             if (1 == n.code) {
  97.                 var o = s.storageUser(n.data);
  98.                 wx.setStorageSync("user", o), s.data.isLoginBack ? t.nav("navigateBack", 1) : t.nav("switchTab", "../index/index");
  99.             } else a.show(n.msg, "", "top");
  100.         });
  101.     }
  102. },
  103. wxLogin: function() {
  104.     console.log(1111);
  105.     var that = this;
  106.     var a = this, n = wx.getStorageSync("wxPersonInfo");
  107.     if (console.log(n), n) e.request("Api/Login/user_login_weixin", n, function(e) {
  108.         console.log(e);
  109.         var n = e.data;
  110.         if (1 == n.code) {
  111.             var o = a.storageUser(n.data);
  112.             console.log(o),
  113.             1 == n.data.is_bind_phone ? t.nav("navigateTo", "../bindPhone/bindPhone", o) : (wx.setStorageSync("user", o),
  114.             a.data.isLoginBack ? t.nav("navigateBack", 1) : t.nav("switchTab", "../index/index"));
  115.         }
  116.     }); else {
  117.         
  118.         var o = getApp();
  119.         wx.login({
  120.             success: function(t) {
  121.                 var n = {}, s = wx.getStorageSync("wxPersonInfo");
  122.                 console.log(s), s ? (n.nickname = s.nickname, n.headimgurl = s.headimgurl, n.sex = s.sex,
  123.                 n.open_id = s.open_id, o.globalData.userInfo = n) : e.request("Api/WeiXin/get_wxopenid", {
  124.                     code: t.code
  125.                 }, function(t) {
  126.                     console.log(t);
  127.                     n.open_id = t.data.data.openid,
  128.                     wx.getUserInfo ? wx.getUserInfo({
  129.                         success: function(t) {
  130.                             console.log(t), wx.getUserInfo({
  131.                                 success: function(t) {
  132.                                     console.log(t);
  133.                                     var a = JSON.parse(t.rawData);
  134.                                     n.nickname = a.nickName, n.headimgurl = a.avatarUrl, n.sex = a.gender, o.globalData.userInfo = n,
  135.                                     console.log(n);
  136.                                     e.request("Api/WeiXin/save_user_weixin_info", n, function(e) {
  137.                                         e.data.code, wx.setStorageSync("wxPersonInfo", n);
  138.                                         that.wxLogin();
  139.                                     });
  140.                                 },
  141.                                 fail: function(e) {
  142.                                     console.log(e), a.show("授权失败,请确认重新授权!", "", "top");
  143.                                 }
  144.                             });
  145.                         },
  146.                         fail: function(e) {
  147.                             console.log(e);
  148.                             that.setData({shouquan:true});
  149.                         }
  150.                     }) : wx.showModal({
  151.                         title: "当前微信版本过低",
  152.                         content: "当前微信版本过低,有些功能不能使用,请升级到最新微信版本后重试。"
  153.                     });
  154.                     // 获取用户信息接口
  155.                     //  queryUsreInfo: function() {
  156.                     //     wx.request({
  157.                     //      url: getApp().globalData.urlPath + 'hstc_interface/queryByOpenid',
  158.                     //      data: {
  159.                     //      openid: getApp().globalData.openid
  160.                     //     },
  161.                     //     header: {
  162.                     //     'content-type': 'application/json'
  163.                     //     },
  164.                     //     success: function (res) {
  165.                     //     console.log(res.data);
  166.                     //     getApp().globalData.userInfo = res.data;
  167.                     //     }
  168.                     // })
  169.                     // }

  170.                 });
  171.             }
  172.         });           
  173.     }
  174. },
  175. // 打开权限设置页提示框
  176. bindGetUserInfo:function(t){
  177.      console.log(t);
  178.      var o = getApp();
  179.      var a = JSON.parse(t.detail.rawData);
  180.      var that = this;
  181.     this.setData({shouquan:false});

  182.     wx.login({
  183.         success: function(t) {
  184.             var n = {}, s = wx.getStorageSync("wxPersonInfo");
  185.             console.log(s), s ? (n.nickname = s.nickname, n.headimgurl = s.headimgurl, n.sex = s.sex,
  186.             n.open_id = s.open_id, o.globalData.userInfo = n) : e.request("Api/WeiXin/get_wxopenid", {
  187.                 code: t.code
  188.             }, function(t) {
  189.                 n.open_id = t.data.data.openid,

  190.                 n.nickname = a.nickName, n.headimgurl = a.avatarUrl, n.sex = a.gender, o.globalData.userInfo = n,
  191.                                 console.log(n);
  192.                                 e.request("Api/WeiXin/save_user_weixin_info", n, function(e) {
  193.                                     e.data.code, wx.setStorageSync("wxPersonInfo", n);
  194.                                     wx.switchTab({
  195.                                         url: '/pages/index/index'
  196.                                       })
  197.                                 });               
  198.             });
  199.         }
  200.     });


  201.     setTimeout(function(){
  202.         that.wxLogin();
  203.     },1000);

  204. },
  205. storageUser: function(e) {
  206.     var t = {}, a = wx.getStorageSync("wxPersonInfo");
  207.     return t.openid = a.open_id, t.phone = e.phone, t.token = e.token, t.nick_name = e.nick_name,
  208.     t.member_name = e.member_name, t.image = e.image, t.id = e.id, t;
  209. },
  210. registorFn: function() {
  211.     t.nav("navigateTo", "../register/register");
  212. },
  213. forgetPwd: function() {
  214.     t.nav("navigateTo", "../forgetPwd/forgetPwd");
  215. },
  216. getPhoneFn0: function(e) {
  217.     this.setData({
  218.         phone0: e.detail.value
  219.     });
  220. },
  221. getPhoneFn1: function(e) {
  222.     this.setData({
  223.         phone1: e.detail.value
  224.     });
  225. },
  226. getPwdFn: function(e) {
  227.     this.setData({
  228.         pwd: e.detail.value
  229.     });
  230. },
  231. getTxtFn: function(e) {
  232.     this.setData({
  233.         code: e.detail.value
  234.     });
  235. },
  236. checkedPhone: function(e) {
  237.     var t = a.checkPhone(e);
  238.     if (101 == t.code) return this.show("手机号不能为空", "", "top"), t.status;
  239.     switch (t.code) {
  240.       case 101:
  241.         return this.show("手机号不能为空", "", "top"), t.status;

  242.       case 102:
  243.         return this.show("手机号过短", "", "top"), t.status;

  244.       case 103:
  245.         return this.show("手机号过长", "", "top"), t.status;

  246.       case 105:
  247.         return this.show("手机号格式错误", "", "top"), t.status;

  248.       default:
  249.         return t.status;
  250.     }
  251. },
  252. checkedPwd: function(e) {
  253.     var t = a.checkPwd(e);
  254.     switch (t.code) {
  255.       case 101:
  256.         return this.show("密码不能为空", "", "top"), t.status;

  257.       case 102:
  258.         return this.show("密码过短,格式为数字与字母的6~16位组合", "", "top"), t.status;

  259.       case 103:
  260.         return this.show("密码过长,格式为数字与字母的6~16位组合", "", "top"), t.status;

  261.       case 105:
  262.         return this.show("密码格式错误,格式为数字与字母的6~16位组合", "", "top"), t.status;

  263.       default:
  264.         return t.status;
  265.     }
  266. },
  267. checkContrastPwd: function(e, t) {
  268.     var n = a.checkContrastPwd(e, t);
  269.     return 104 == n.code ? (this.show("两次输入密码不一致", "", "top"), n.status) : n.status;
  270. }
  271. });
复制代码
更改完成后以及下错误及返回结果 :
  1. 1.{data: {…}, header: {…}, statusCode: 200, cookies: Array(0), errMsg: "request:ok"}
  2. cookies: []
  3. data: {code: 1, msg: "请求成功。", data: {…}}
  4. errMsg: "request:ok"
  5. header: {Date: "Sun, 17 Apr 2022 11:32:24 GMT", Server: "Apache/2.4.23 (Win32) OpenSSL/1.0.2j mod_fcgid/2.3.9", X-Powered-By: "PHP/5.4.45", Expires: "Thu, 19 Nov 1981 08:52:00 GMT", Cache-Control: "no-store, no-cache, must-revalidate, post-check=0, pre-check=0", …}
  6. statusCode: 200
  7. proto: Object
  8. 2.{errMsg: "getUserInfo:fail scope unauthorized"}
  9. errMsg: "getUserInfo:fail scope unauthorized"
  10. proto: Object
  11. 3.{type: "getuserinfo", timeStamp: 7906, target: {…}, currentTarget: {…}, mark: {…}, …}
  12. currentTarget: {id: "", offsetLeft: 85, offsetTop: 320, dataset: {…}}
  13. detail: {errMsg: "getUserInfo:ok", rawData: "{"nickName":"~小友","gender":0,"language":"zh_CN","c…f9GN12kHXVXCPbKwwfyxX84Iwe6surlcGKCicibadtg/132"}", signature: "960b61a011af45d710378d4217e4e2950d456339", encryptedData: "RDJHMIkZRF23rhvljsxnyvWA5SNgadJX1ks4WFTLFmTApRQ10g…oKYWT/OSSHhUj6BW/5njaUhmlJb3kBS9w5z6BHAVRAFIcQA==", iv: "AOtsMy2UR4IUSDtpQo/AkA==", …}
  14. mark: {}
  15. mut: false
  16. target: {id: "", offsetLeft: 85, offsetTop: 320, dataset: {…}}
  17. timeStamp: 7906
  18. type: "getuserinfo"
  19. _userTap: false
  20. proto: Object
  21. 报错1:
  22. VM3301 WAService.js:2 MiniProgramError
  23. Cannot set property 'userInfo' of undefined
  24. TypeError: Cannot set property 'userInfo' of undefined
  25. athttp://127.0.0.1:52044/appservice/pages/login/login.js:201:136
  26. at success (http://127.0.0.1:52044/appservice/utils/request.js:49:140)
  27. at Function.i. (http://127.0.0.1:52044/appservice/__dev__/WAService.js:2:2911763)
  28. at
  29. athttp://127.0.0.1:52044/appservice/__dev__/WAService.js:2:121992
  30. at u (http://127.0.0.1:52044/appservice/__dev__/WAService.js:2:1539149)
  31. at Function. (http://127.0.0.1:52044/appservice/__dev__/WAService.js:2:1703010)
  32. at
  33. athttp://127.0.0.1:52044/appservice/__dev__/WAService.js:2:121992
  34. athttp://127.0.0.1:52044/appservice/__dev__/WAService.js:2:1677704(env: Windows,mp,1.05.2201240; lib: 2.14.0)
  35. 报错2:
  36. VM3301 WAService.js:2 MiniProgramError
  37. Cannot set property 'userInfo' of undefined
  38. TypeError: Cannot set property 'userInfo' of undefined
  39. at success (http://127.0.0.1:52044/appservice/pages/login/login.js:144:114)
  40. at Function.i. (http://127.0.0.1:52044/appservice/__dev__/WAService.js:2:2911763)
  41. at
  42. at Object.success (http://127.0.0.1:52044/appservice/__dev__/WAService.js:2:121992)
  43. at B (http://127.0.0.1:52044/appservice/__dev__/WAService.js:2:1841150)
  44. at B (http://127.0.0.1:52044/appservice/__dev__/WAService.js:2:1841388)
  45. athttp://127.0.0.1:52044/appservice/__dev__/WAService.js:2:1842827
  46. athttp://127.0.0.1:52044/appservice/__dev__/asdebug.js:1:49966
  47. at C (http://127.0.0.1:52044/appservice/__dev__/asdebug.js:1:49621)
  48. athttp://127.0.0.1:52044/appservice/__dev__/asdebug.js:1:3691(env: Windows,mp,1.05.2201240; lib: 2.14.0)
复制代码
求问怎么改后续登录流程


作者: qqq911    时间: 2022-4-20 10:21
看下报错在那个请求
作者: bellas    时间: 2022-4-20 10:54
打个断点,看下输出
作者: jingzizx    时间: 2022-4-20 14:05
没看明白方法,直接一步步调试是否可以




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2