獲取微信用戶登錄權限
微信小程序獲取用戶信息,可以用微信提供的getUserInfo接口實現,但是這個接口只能返回用戶的昵稱、頭像等基本信息,用戶的openID和sessionID以及用戶的手機號等信息都不能用這個來得到,這些都需要獲得用戶的登錄權限才能獲取。
1、使用wx.login接口獲取用戶登錄憑證的code,因為這些涉及到用戶的隱私,所有這個code需要我們處理
2、自己封裝一個接口去請求微信官方給的鏈接(鏈接地址:https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code
),由於微信對接口服務器有限制,所以必須要自己封裝這個接口,
接口的函數微信小程序的公眾平台上有示例。鏈接地址為:https://mp.weixin.qq.com/debug/wxadoc/dev/api/signature.html
3、用獲取的code請求自己的接口,從而獲取用戶的openId
4、通過 wx.login()
獲取到用戶登錄態之后,需要維護登錄態。開發者要注意不應該直接把 session_key、openid 等字段作為用戶的標識或者 session 的標識,而應該自己派發一個 session 登錄態(請參考登錄時序圖)。對於開發者自己生成的 session,應該保證其安全性且不應該設置較長的過期時間。session 派發到小程序客戶端之后,可將其存儲在 storage ,用於后續通信使用。
用戶授權
在微信小程序中,我們用到的很多都需要設備都需要用戶授權,才能得到相關信息,比如微信運動、打開藍牙等,這些我們都要在程序前加上用戶授權操作。使用方法如下,這里的scope參數可以換成你需要用到權限,調用wx.authorize會彈出彈框詢問用戶是否授權。
wx.getSetting({ success(res) { if (!res.authSetting['scope.record']) { wx.authorize({ scope: 'scope.record', success() { // 用戶已經同意小程序使用錄音功能,后續調用 wx.startRecord 接口不會彈窗詢問 wx.startRecord() } }) } } })