lll
liukangdong
2024-08-01 684ef70c5834b3bdee5997dbdc8bf193eacb7851
wechat_jiaxuan/app.js
@@ -1,5 +1,6 @@
import {
  wxLoginCustomer
  wxLoginCustomer,
  getMemberInfo
} from './api/index'
import CustomHook from 'spa-custom-hooks';
let globalData = {
@@ -24,55 +25,127 @@
      this.globalData.bottomLift = WindowInfo.screenHeight - WindowInfo.safeArea.bottom
    }
    // 授权登录
    wx.login({
      timeout: 5000,
      success: (res) => {
        var userId = null
        if (op.query.scene) {
          let temp = op.query.scene.split('_')
          userId = temp[2]
        }
        if (res.code) {
          //发起网络请求
          wxLoginCustomer({
            code: res.code,
            userId
          }).then(res => {
            wx.setStorageSync('token', res.data.token)
            this.globalData.token = res.data.token
            if (op.query.scene) {
              let temp = op.query.scene.split('_')
              wx.navigateTo({
                url: `${pathMap[temp[1]]}?id=${temp[0]}&userId=${temp[2]}`,
              })
            }
            console.log('拿到token了', res.data.token);
            if (res && res.data.member) {
              wx.setStorageSync('member', res.data.member)
              wx.setStorageSync('openid', res.data.member.openid)
              wx.setStorageSync('sessionKey', res.data.sessionKey)
            } else {
              console.log('登录失败!')
    var userId = null
    if (op.query.scene) {
      let temp = op.query.scene.split('_')
      userId = temp[2]
    }
    const token = wx.getStorageSync('token') || ''
    if (token) {
      getMemberInfo({
        isAuth: true
      }).then(res => {
        if (res.code !== 200) {
          setTimeout(() => {
            wx.showLoading({
              title: '正在重新登录...',
              mask: true
            })
          }, 200)
          setTimeout(() => {
            wx.hideLoading()
          }, 1000)
          wx.login({
            timeout: 5000,
            success: (res) => {
              var userId = null
              if (op.query.scene) {
                let temp = op.query.scene.split('_')
                userId = temp[2]
              }
              if (res.code) {
                //发起网络请求
                wxLoginCustomer({
                  code: res.code,
                  userId
                }).then(res => {
                  wx.setStorageSync('token', res.data.token)
                  this.globalData.token = res.data.token
                  if (op.query.scene) {
                    let temp = op.query.scene.split('_')
                    wx.navigateTo({
                      url: `${pathMap[temp[1]]}?id=${temp[0]}&userId=${temp[2]}`,
                    })
                  }
                  console.log('拿到token了', res.data.token);
                  if (res && res.data.member) {
                    wx.setStorageSync('member', res.data.member)
                    wx.setStorageSync('openid', res.data.member.openid)
                    wx.setStorageSync('sessionKey', res.data.sessionKey)
                  } else {
                    console.log('登录失败!')
                  }
                })
              } else {
                console.log('登录失败!' + res)
              }
            },
            fail(err) {
              console.log(err)
            }
          })
        } else {
          console.log('登录失败!' + res)
          if (op.query.scene) {
            let temp = op.query.scene.split('_')
            wx.navigateTo({
              url: `${pathMap[temp[1]]}?id=${temp[0]}&userId=${temp[2]}`,
            })
          }
        }
      },
      fail(err) {
        console.log(err)
      }
    })
      })
    } else {
      // 授权登录
      wx.login({
        timeout: 5000,
        success: (res) => {
          if (op.query.scene) {
            let temp = op.query.scene.split('_')
            userId = temp[2]
          }
          if (res.code) {
            //发起网络请求
            wxLoginCustomer({
              code: res.code,
              userId
            }).then(res => {
              wx.setStorageSync('token', res.data.token)
              this.globalData.token = res.data.token
              if (op.query.scene) {
                let temp = op.query.scene.split('_')
                wx.navigateTo({
                  url: `${pathMap[temp[1]]}?id=${temp[0]}&userId=${temp[2]}`,
                })
              }
              console.log('拿到token了', res.data.token);
              if (res && res.data.member) {
                wx.setStorageSync('member', res.data.member)
                wx.setStorageSync('openid', res.data.member.openid)
                wx.setStorageSync('sessionKey', res.data.sessionKey)
              } else {
                console.log('登录失败!')
              }
            })
          } else {
            console.log('登录失败!' + res)
          }
        },
        fail(err) {
          console.log(err)
        }
      })
    }
  },
  onShow(options) {
    console.log('options', options);
  }
})
CustomHook.install({
  'Login':{
     name:'Login',
     watchKey: 'token',
     onUpdate(val){
       //有token则触发此钩子
       return !!val;
     }
   }
 }, globalData || 'globalData')
  'Login': {
    name: 'Login',
    watchKey: 'token',
    onUpdate(val) {
      //有token则触发此钩子
      return !!val;
    }
  }
}, globalData || 'globalData')