微信小程序須要獲取用戶的openid來做爲用戶的惟一身份認證,用來存儲和更新對應客戶信息。 以Node後臺爲例, 前臺發出請求後,後臺轉發訪問對應的微信接口來獲取openid.前端
1. 小程序前端請求:小程序
getUserInfo: function(e) { app.globalData.userInfo = e.detail.userInfo this.setData({ userInfo: e.detail.userInfo, hasUserInfo: true }) wx.login({ success: res => { app.globalData.usercode = res.code //1. 獲取usercode做爲後面獲取openid的參數 } }) var id=null id=wx.getStorageSync('openid') if (!id) { wx.request({ url: getOpenId, //set in config .js //2.後臺API method: "POST", data: { js_code: app.globalData.usercode, }, success(res) { var openId = res.data.openid var sessionKey = res.data.session_key console.log(res) wx.setStorageSync("openid", openId) app.globalData.openId = openId if (!!openId) { //3.獲取到openid後的處理,能夠依照本身的邏輯寫 app.globalData.openId = openId wxlogin(openId) } } }) } } })
2. Node JS 後臺獲取openid:微信小程序
router.post('/wxgetOpenId', function (req, res, next) { var data=req.body var APP_URL='https://api.weixin.qq.com/sns/jscode2session' var APP_ID='wxXXXXXXXXX' //小程序的app id ,在公衆開發者後臺能夠看到 var APP_SECRET='8ad6f0XXXXXXXXXXXX' //程序的app secrect,在公衆開發者後臺能夠看到 var resData=null var thisRes=res if(!!data.js_code) { request(`${APP_URL}?appid=${APP_ID}&secret=${APP_SECRET}&js_code=${data.js_code}&grant_type=authorization_code`, (error, response, body)=>{ console.log('statusCode:', response && response.statusCode) console.log(body) res.end(body)}) } })