|
@@ -0,0 +1,108 @@
|
|
|
+// 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: {
|
|
|
+ item_data: {
|
|
|
+ type: Object
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 组件的初始数据
|
|
|
+ */
|
|
|
+ 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
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+})
|