微信小程序獲取用戶openid的實現(xiàn)
1、wx.login(OBJECT)
調(diào)用接口獲取登錄憑證(code)進而換取用戶登錄態(tài)信息,包括用戶的唯一標識(openid) 及本次登錄的 會話密鑰(session_key)。用戶數(shù)據(jù)的加解密通訊需要依賴會話密鑰完成。
2、code 換取 session_key
這是一個 HTTPS 接口,開發(fā)者服務器使用登錄憑證 code 獲取 session_key 和 openid。其中 session_key 是對用戶數(shù)據(jù)進行加密簽名的密鑰。為了自身應用安全,session_key 不應該在網(wǎng)絡上傳輸。
接口地址:
詳細的介紹請看小程序APIhttps://mp.weixin.qq.com/debug/wxadoc/dev/api/api-login.html#wxloginobject
3、獲取用戶openid實例
//app.js App({ globalData:{ appid:'1wqas2342dasaqwe2323424ac23qwe',//appid需自己提供,此處的appid我隨機編寫 secret:'e0dassdadef2424234209bwqqweqw123ccqwa',//secret需自己提供,此處的secret我隨機編寫 }, onLaunch: function () { var that = this var user=wx.getStorageSync('user') || {}; var userInfo=wx.getStorageSync('userInfo') || {}; if((!user.openid || (user.expires_in || Date.now()) < (Date.now() + 600))&&(!userInfo.nickName)){ wx.login({ success: function(res){ if(res.code) { wx.getUserInfo({ success: function (res) { var objz={}; objz.avatarUrl=res.userInfo.avatarUrl; objz.nickName=res.userInfo.nickName; //console.log(objz); wx.setStorageSync('userInfo', objz);//存儲userInfo } }); var d=that.globalData;//這里存儲了appid、secret、token串 var l='https://api.weixin.qq.com/sns/jscode2session?appid='+d.appid+'&secret='+d.secret+'&js_code='+res.code+'&grant_type=authorization_code'; wx.request({ url: l, data: {}, method: 'GET', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT // header: {}, // 設置請求的 header success: function(res){ var obj={}; obj.openid=res.data.openid; obj.expires_in=Date.now()+res.data.expires_in; //console.log(obj); wx.setStorageSync('user', obj);//存儲openid } }); }else { console.log('獲取用戶登錄態(tài)失??!' + res.errMsg) } } }); } }, })
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
JavaScript 函數(shù)的定義-調(diào)用、注意事項
這篇文章主要介紹了JavaScript 函數(shù)的定義-調(diào)用、注意事項,需要的朋友可以參考下2017-04-04原生JS實現(xiàn)$.param() 函數(shù)的方法
這篇文章主要介紹了原生JS實現(xiàn)$.param() 函數(shù)的方法,由于遇到相關序列化的問題,但是vue項目中由于減少隊jquery引用的限制,導致不能用$.param來序列化參數(shù),下面小編給大家分享了實例代碼,需要的朋友參考下吧2018-08-08小程序getLocation需要在app.json中聲明permission字段
這篇文章主要介紹了小程序getLocation需要在app.json中聲明permission字段,個別需要獲取用戶地理位置的在開發(fā)者工具調(diào)試時會出現(xiàn)getLocation需要在app.json中聲明permission字段 ,下面我們就一起來解決一下2019-04-04javascript使用數(shù)組的push方法完成快速排序
排序的方法有很多,本節(jié)為大家介紹的是使用數(shù)組的push方法完成快速排序,當然你也可以舉一反三2014-09-09