小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

關(guān)于小程序登錄時獲取openId和unionId走過的坑

 昵稱21532077 2018-04-10

目前的項目是在做小程序這方面的,接觸過的人應(yīng)該都知道,同一個微信開放平臺下的相同主體的App、公眾號、小程序的unionid是相同的,這樣就可以鎖定是不是同一個用戶。微信針對不同的用戶在不同的應(yīng)用下都有唯一的一個openId, 但是要想確定用戶是不是同一個用戶,就需要靠unionid來區(qū)分。一般自己的后臺都會有自己的一個用戶表,每個用戶有不同的userid。也就是說同一個用戶在同一個微信開放平臺下的相同主體的應(yīng)用對應(yīng)著相同的userid,unionid以及不同的openid。所以在用戶登錄進(jìn)來的時候,我們只能靠微信返回給我們的unionid去判斷是不是同一個用戶,在去關(guān)聯(lián)我們的用戶表,拿到對應(yīng)的userid。

接下來就是在獲取unionid時的一些小問題分享一下:

首先,前端調(diào)用wx.login的時候會返回一個code,這個code傳到后臺的時候,就需要去調(diào)用微信的接口(https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code)傳入 code,appid,secret去換取到openid,session_key以及unionid等信息。這里就需要注意了。官方文檔上說的是

如果用戶已經(jīng)關(guān)注公眾號,或者曾經(jīng)登錄過App或公眾號,則用戶打開小程序時,開發(fā)者可以直接通過wx.login獲取到該用戶UnionID,無須用戶再次授權(quán)。

就是因為沒有注意到這句話,所以后來改了好多東西,這里分為兩種情況,

(1)用code換取的時候,返回了unionid,這樣就皆大歡喜了,你可以根據(jù)unionid以及openid去判斷該用戶有沒有用戶信息,從而獲取userid或者生產(chǎn)userid返回給前端

(2)悲劇的情況,unionid返回為null,這時候你沒法兒關(guān)聯(lián)出用戶的userid。后來再去看官方文檔的時候,發(fā)現(xiàn)有針對這種情況的方法。就是需要前端再去調(diào)wx.getUserInfo()這個接口。這時候微信會返回很多數(shù)據(jù)(詳情見微信官方文檔:https://mp.weixin.qq.com/debug/wxadoc/dev/api/open.html),這些數(shù)據(jù)里面有一個encryptedData,這個數(shù)據(jù)中就包含你需要的unionid以及其他的很多用戶信息啦。獲取到以后將encryptedData、加密算法的初始向量iv返回給后端,后端根據(jù)這兩個數(shù)據(jù)以及之前的session_key就可以解密出你需要的數(shù)據(jù)了。

https://developers.weixin.qq.com/miniprogram/dev/api/api-login.html#wxloginobject

App({
  onLaunch: function() {
    wx.login({
      success: function(res) {
        if (res.code) {
          //發(fā)起網(wǎng)絡(luò)請求
          wx.request({
            url: 'https:///onLogin',
            data: {
              code: res.code
            }
          })
        } else {
          console.log('登錄失?。? + res.errMsg)
        }
      }
    });
  }
})


    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多