1. 程式人生 > >微信小程式之登入

微信小程式之登入

  1. 直接獲取使用者資料

          wx.getUserInfo({
            success: function (res) {
              var userInfo = res.userInfo
              console.log("獲取登入使用者的所有資訊")
              console.log(res.userInfo)
              }
            })
  2. 如果使用者拒絕,提示模態框,點選確定,進入設定,再次讓使用者選擇允許。

        fail: function (res) {
              wx.showModal({
                title: '提示'
    , content: '獲取使用者資訊失敗,這將影響您使用小程式,是否重新設定授權?', showCancel: true, cancelText: "否", confirmText: "是", success: function (res) { if (res.confirm) { //點選是 wx.openSetting({ //開啟設定 success: function (res)
    {
    console.log(res) if (res.authSetting['scope.userInfo'] === true) { wx.getUserInfo({ success: function (res) { console.log("重新登入成功") var userInfo = res.userInfo var
    nickName = userInfo.nickName //使用者名稱 var avatarUrl = userInfo.avatarUrl //頭像 console.log("獲取登入使用者的所有資訊") console.log(res.userInfo) that.setData({ imageInfo: avatarUrl, userName: nickName, hasUserInfo: true, isLogin: true, }) t.globalData.imageInfo = avatarUrl;//全域性變量表示登入使用者頭像 t.globalData.userName = nickName;//登入使用者名稱 } }) } } }) } else if (res.cancel) { console.log('使用者取消授權個人資訊'); } }

    初始狀態

    點選登入

如果點選允許

從微信後臺獲取到的資訊

前臺解析並顯示

得到使用者名稱和頭像

如果點選拒絕,讓你重新選擇
顯示模態框
點選是,就進入設定介面
進入設定介面

點選勾選,返回即可登入。

loginwx: function() {
    var that = this
    if(that.data.isLogin == false)
    {
      wx.getUserInfo({
        success: function (res) {
          var userInfo = res.userInfo
          var nickName = userInfo.nickName  //使用者名稱
          var avatarUrl = userInfo.avatarUrl  //頭像
          console.log("獲取登入使用者的所有資訊")
          console.log(res.userInfo)
          // wx.showToast({
          //   title: nickName,
          // });
          that.setData({
            imageInfo: avatarUrl,
            userName: nickName,
            hasUserInfo: true,
            isLogin: true,
          })
          t.globalData.imageInfo = avatarUrl;//全域性變量表示登入使用者頭像
          t.globalData.userName = nickName;//登入使用者名稱
        },
        fail: function (res) {
          wx.showModal({
            title: '提示',
            content: '獲取使用者資訊失敗,這將影響您使用小程式,是否重新設定授權?',
            showCancel: true,
            cancelText: "否",
            confirmText: "是",
            success: function (res) {
              if (res.confirm) {
                wx.openSetting({
                  success: function (res) {
                    console.log(res)
                    if (res.authSetting['scope.userInfo'] === true) {
                      wx.getUserInfo({
                        success: function (res) {
                          console.log("重新登入成功")
                          var userInfo = res.userInfo
                          var nickName = userInfo.nickName  //使用者名稱
                          var avatarUrl = userInfo.avatarUrl  //頭像
                          console.log("獲取登入使用者的所有資訊")
                          console.log(res.userInfo)
                          that.setData({
                            imageInfo: avatarUrl,
                            userName: nickName,
                            hasUserInfo: true,
                            isLogin: true,
                          })
                          t.globalData.imageInfo = avatarUrl;//全域性變量表示登入使用者頭像
                          t.globalData.userName = nickName;//登入使用者名稱
                        }
                      })  
                  }
                  }
                })
              } else if (res.cancel) {
                console.log('使用者取消授權個人資訊');
              }
            }
          })
        }
      })
    }