微信小程序中用戶唯一ID的獲取


折騰到半夜,搞得挺興奮,總結一下,免得忘了:

1、微信小程序直接獲得的是一些簡單信息,基本無用

2、用戶唯一標識是openid,還有一個unionid是關聯多個公眾號之類情況下用,我不大關心

3、在getUserInfo的返回數據中,有加密信息,

wx.getUserInfo({
  success: function(res) {
  }
})

res包括userInfo,iv,rawData,signatureencryptedData,這些東西的關系比較復雜,我理解是這樣的:

1)userInfo包括簡單的用戶信息

2)重要信息在encryptedData中,解開后包括:

image

3)要解開的話,需要密文-encryptedData,向量-iv,密鑰-session-key。密鑰這里沒有。

4)rawData,signature是來做校驗的,不太關心

4、session-key的獲取方式:

1)登錄成功后,傳給回調的參數包括一個code,但這個code會很快失效

2)通過調用

https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code

可以獲得session-key和openid。除了code,其他參數很簡單,文檔里有說明。

在瀏覽器中測試沒有問題,但是,在小程序中也不能運行,因為小程序只能訪問認證過的服務器。換言之,必須要把這個東西放到服務器上,從微信中去調用服務器的頁面,服務器的頁面再去訪問這個接口,然后再把數據反饋回來。

道理搞明白其實就很簡單了,獲得了openid,其實也沒用必要再去解密了,因為那里除了openid,也沒啥想要的東西。

我的小程序:簡單賬本

參考:

https://mp.weixin.qq.com/debug/wxadoc/dev/api/api-login.html#wxloginobject

http://bbs.umeng.com/thread-6081-1-1.html

http://www.cnblogs.com/nosqlcoco/p/6105749.html

http://blog.csdn.net/u013803499/article/details/52873537


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM