小程式自動登入實現
阿新 • • 發佈:2019-01-07
微信小程式之登入
第一步:獲取登入態code
微信登入部分,首先需要使用微信小程式的api—— wx.login(OBJECT)來獲取登入態
這個登入態的作用是為了獲取使用者的openid(使用者的唯一標識);
官方示例
js部分:
//呼叫登入
wx.login({ success: function(res) { console.log(res); if (res.code) { //發起網路請求 //doSomething } else { console.log('獲取使用者登入態失敗!' + res.errMsg) } }, fail: function(){ console.log("啟用wx.login函式,失敗!"); }, complete:function(){ console.log("已啟用wx.login函式"); } });
第二步:將登入態code傳送給第三方伺服器(即自家的伺服器)
官方示例
把wx.login獲取到的res.code返回值,直接以引數的形式,發起網路請求傳送登入態給自家伺服器
js部分:
//呼叫登入
wx.login({ success: function(res) { console.log(res); if (res.code) { //就是在這裡發起網路請求,使用wx.request(),將登入態傳送給自家的伺服器上 wx.request({ url: 'https://test.com/onLogin', data: { code: res.code }, method: 'POST', header: {'content-type': 'application/json'}, success: function(data){ } }) } else { console.log('獲取使用者登入態失敗!' + res.errMsg) } }, fail: function(){ console.log("啟用wx.login函式,失敗!"); }, complete:function(){ console.log("已啟用wx.login函式"); } });
第三步:客戶端儲存收到後臺同事返回的3rd_session
將後臺返回的3rd_session存入快取中。
wx.login({ success: function(res) { console.log(res); if (res.code) { wx.request({ url: 'https://test.com/onLogin', data: { code: res.code }, method: 'POST', header: {'content-type': 'application/json'}, success: function(data){ console.log(data) } }) // 使用wx.getUserInfo獲取使用者資訊 wx.getUserInfo({ success: function (res) { utils.log(res); }, fail:function(){ console.log("啟用app.getUserInfo函式,失敗!"); }, complete:function(){ console.log("已啟用app.getUserInfo函式"); });
第五步:登入態維護
通過上面四步,就可成功登入微信小程式了,但是還需要做登入維護。
也就是說,登入小程式後,然後又退出該小程式了。在一段時間內,再次進入該小程式,視為有效登陸,如果超出指定的時間,則視為無效登陸,需要重新登陸
以上內容是從客戶端角度書寫,有不明之處隨時問.