// pages/components/auth/auth.js const api = require('../../../config'); const getReq = require('../../../config').getReq; const ald = require('../../../utils/ald-stat.js') let app = getApp(); Component({ /** * 组件的属性列表 */ properties: { }, /** * 组件的初始数据 */ data: { phone_iv: '', phone_encryptedData: '', userInfoE: {}, showAuthName: true, showAuthPhone: false, }, lifetimes: { attached: function () { if (!app.globalData.userInfo) { this.setData({ showAuthName: true, showAuthPhone: false }) } else if (!app.globalData.hasmobile) { this.setData({ showAuthName: false, showAuthPhone: true }) } }, detached: function () { }, }, /** * 组件的方法列表 */ methods: { userPhoneHandler: function (e) { if (e.detail.errMsg == "getPhoneNumber:ok") { wx.aldstat.sendEvent('wxAuthen', { phone: true }) this.phone_encryptedData = e.detail.encryptedData this.phone_iv = e.detail.iv this.wxauthen(this.userInfoE) } }, userInfoHandler(e) { if (e.detail.errMsg == "getUserInfo:ok") { app.globalData.userInfo = e.detail.userInfo; app.globalData.userInfo.nickname = e.detail.userInfo.nickName; this.userInfoE = e this.wxauthen(e) } }, wxauthen: function (eInfo) { let userInfo; if (app.globalData.userId.unionid) { userInfo = Object.assign({}, app.globalData.userId, app.globalData.userInfo); } else { userInfo = eInfo.detail.userInfo; let { encryptedData, iv, signature } = eInfo.detail userInfo = Object.assign({}, { encryptedData }, { signature }, { iv }, userInfo) } let phoneInfo = { iv: this.phone_iv, encryptedData: this.phone_encryptedData } let params = { user_info: userInfo, phone_info: phoneInfo, act: "login", op: "wxauthen", relay_id: app.globalData.relay_id, channel: app.globalData.channel_num } let self = this; getReq(app, params, function (res) { if (res.code == 200) { let datas = res.datas; app.globalData.member_id = datas.member_id app.globalData.hasmobile = datas.hasmobile if (datas.hasmobile == false) { self.setData({ showAuthName: false, showAuthPhone: true }) } else { self.triggerEvent('getAuth', { userInfo }) } } else { app.relogin(); wx.showToast({ icon: 'none', title: '登陆遇到一点麻烦,请重试~~~', duration: 2000 }) } }) } } })