微信小程式的授權登入

chantel186發表於2018-09-15

1、授權登入的頁面基本實現:
1)、這個是.xml頁面的樣式:

<view class="container">
  <view class="userinfo">
    <button wx:if="{{!hasUserInfo && canIUse}}"> 獲取頭像暱稱 </button>
    <block wx:else>
      <image bindtap="bindViewTap" class="userinfo-avatar" src="{{userInfo.avatarUrl}}" mode="cover"></image>
      <text class="userinfo-nickname">{{userInfo.nickName}}</text>
    </block>
  </view>
  <view class='content'>
      <view class="contentText">申請獲取以下許可權</view>
      <text>獲得你的公開資訊(暱稱,頭像等)</text>
  </view>
  <button class='bottom' type='primary' open-type="getUserInfo"  bindgetuserinfo="getUserInfo">
        授權登入
  </button>
</view>

```現在的微信小程式不能直接進入獲取個人基本資訊,必須通過button標籤觸發函式來獲取,所以這個“getUserInfo”
函式是核心函式,





<div class="se-preview-section-delimiter"></div>

這裡寫程式碼片
“`

getUserInfo: function(e) {
    var that = this;
    console.log(e.detail.userInfo);
    if (e.detail.userInfo) {
      wx.login({
        success: res => {
          //console.log(res.code, e.detail.iv, e.detail.encryptedData)
          //console.log(e.detail.userInfo)
          wx.request({
            //後臺介面地址
            url: 'http://5849124c.ngrok.io/mollymall/authorize',   //這個是寫自己後臺提供的api介面
            data: {
              code: res.code,
              // nickname: e.detail.userInfo.nickName,
              // sex: e.detail.userInfo.gender,
              // country: e.detail.userInfo.country,
              // province: e.detail.userInfo.province,
              // city: e.detail.userInfo.city,
              // headurl: e.detail.userInfo.avatarUrl,
              iv: e.detail.iv,
              encryptedData: e.detail.encryptedData
            },
            method: 'POST',
            header: {
              'content-type': 'application/x-www-form-urlencoded'
            },
            success: function (res) {
              console.log(res);
              if(res.statusCode == 200){
                wx.setStorageSync("mollySession", res.data.data);//可以把openid儲存起來,以便後期需求的使用
                wx.redirectTo({
                  url: "/pages/subscriber/subscriber"
                })
              }else{
                wx.redirectTo({
                  url: "/pages/login/login"
                })
              }
            }
          })
        }
      })

    }else{
      console.log(333, '測試而已!')
      wx.showToast({
        title: "為了您更好的體驗,請先同意授權",
        icon: 'none'

      });
    }
    //跳轉到另一個頁面
    // wx.navigateTo({
    //     url: "/pages/index/index"
    // })
    //console.log(e);
  }

接著觸發這個getUserInfo裡面要呼叫微信的wx.login({})這個函式才能獲取在授權登入需要傳過去的code、iv、encryptedData引數;基本的就操作完成了

相關文章