一文教會你微信小程序如何實現登錄

業務流程:

1:首先需要一個按鈕觸發事件

2:調用微信小程序的登錄接口wx.login,拿到code

3:調用微信小程序的獲取用戶信息的接口wx.getUserProfile,拿到用戶的個人信息

4:拿到的個人信息調用後臺的接口,把個人信息傳給後臺,登錄成功並把相關信息存儲在本地的緩存中,方便之後的開發使用

下面開始用代碼介紹

wxml:

<view>
    <button bindtap="login">登錄</button>
</view>

js:

1:data初始數據

//後臺接口需要的一下參數(具體要和後臺的同事商量)    
loginInfo: {
      code: '',
      spread_spid: 0,
      spread_code: 0
}

2:按鈕觸發的login點擊事件

調用微信小程序的登錄接口:

wx.login(Object object) | 微信開放文檔
微信開發者平臺文檔
https://developers.weixin.qq.com/miniprogram/dev/api/open-api/login/wx.login.html

調用微信獲取用戶個人信息的接口:

wx.getUserProfile(Object object) | 微信開放文檔
微信開發者平臺文檔
https://developers.weixin.qq.com/miniprogram/dev/api/open-api/user-info/wx.getUserProfile.html

//登錄按鈕觸發的事件
login(){
  let that = this
    //調用微信小程序的登錄接口
   wx.login({
      success(e) {
        that.data.loginInfo.code = e.code //拿到的code存儲在data中
        wx.showModal({
          title: '溫馨提示',
          content: '微信授權登錄後才能正常使用小程序功能',
          cancelText: '拒絕',
          confirmText: '同意',
          success( sucessInfo ) {
            //調用微信小程序的獲取用戶信息的接口
            wx.getUserProfile({
              desc: '用於完善會員資料', // 聲明獲取用戶個人信息後的用途
              lang: 'zh_CN',
              success(info) {
                //把獲取到的信息復制到data中的loginInfo中
                that.data.loginInfo = Object.assign( that.data.loginInfo, info )
                //調用後臺的接口,把所有整合的個人信息傳過去
                that.handlerLogin( that.data.loginInfo )
              },
              fail(e) {
                console.log('獲取用戶信息失敗', e)
                
              }
            })
          },
          fail() {
            console.log("拒絕")
          },
          complete() {}
        })
 
      },
      fail(e) {
        console.log('fail', e)
        wx.showToast({
          title: '網絡異常',
          duration: 2000
        })
        return
      }
    })
}

3:調用後臺的登錄接口

wx.setStorageSync() :將數據存儲在本地緩存中,

wx.setStorageSync(string key, any data) | 微信開放文檔
微信開發者平臺文檔
https://developers.weixin.qq.com/miniprogram/dev/api/storage/wx.setStorageSync.html

wx.getStorageSync('token') :獲取本地緩存的數據

any wx.getStorageSync(string key) | 微信開放文檔
微信開發者平臺文檔
https://developers.weixin.qq.com/miniprogram/dev/api/storage/wx.getStorageSync.html

//調用後臺的登錄接口
  handlerLogin( loginInfo ) {
    let that = this
    //login是後臺接口封裝的方法
    login( loginInfo ).then(( res ) => {
      console.log('登錄成功', res)
      let { cache_key, expires_time, token, userInfo } = res.data
       //把用戶信息存儲到storage中,方便其它地方使用
      wx.setStorageSync('cache_key', cache_key)
      wx.setStorageSync('expires_time', expires_time)
      wx.setStorageSync('token', token)
      wx.setStorageSync('isLog', true)
      wx.setStorageSync('userInfo', JSON.stringify( userInfo ))
      wx.setStorageSync('loginRecord', new Date().getTime())
    })
    .catch(( res ) => {
      console.log('catch', res)
    })
    .finally(() => {
      console.log('finally')
    })
  }

總結

以上就是微信小程序開發時,實現的登錄。一共4步走,希望能幫助得到大傢。 

到此這篇關於微信小程序如何實現登錄的文章就介紹到這瞭,更多相關微信小程序實現登錄內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: