1. 程式人生 > >小程式自動登入實現

小程式自動登入實現

微信小程式之登入

第一步:獲取登入態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函式");   
 });

第五步:登入態維護

通過上面四步,就可成功登入微信小程式了,但是還需要做登入維護。

也就是說,登入小程式後,然後又退出該小程式了。在一段時間內,再次進入該小程式,視為有效登陸,如果超出指定的時間,則視為無效登陸,需要重新登陸

以上內容是從客戶端角度書寫,有不明之處隨時問.