微信小程序自动登录代码


在微信小程序开发中,自动登录是一个很关键的步骤,现在把自动登录定义成函数在app.js文件,方便使用的时候调用(本页面有温州网站建设收集整理):

//app.js
var config = require('/pages/config/config.js');
App({
  
  onLaunch: function() {
  
    // 打开调试
    
    wx.setEnableDebug({
      enableDebug: false
    })
    //调用API从本地缓存中获取数据
    var logs = wx.getStorageSync('logs') || []
    logs.unshift(Date.now())
    wx.setStorageSync('logs', logs);

    var appSelf=this;
    var loginZtai=true;
    var openId = (wx.getStorageSync('openId'));
    var uid = (wx.getStorageSync('uid'));  
    console.log("openId:" + openId + " , uid:" + uid);
    if (openId && uid)
    {
      //---------------------------------------------------------begin----验证uid的有效性 
      wx.request({
        url: config.api.reqReadUid, 
        data: {
          "pid": openId,
          "uid": uid
        },
        method: 'POST',
        header:
        {
          'content-type': 'application/json'
        },
        success: function (res)
        {
          //--
          var result=res.data.result||[];
          if (result=="err")
          {
            loginZtai=false;
            console.log("reqReadUid:loginZtai=false");
            appSelf.loginFun();
          }
          else
          {
            loginZtai = true;
            console.log("reqReadUid:loginZtai=true");
          } 
        }
      })
      //---------------------------------------------------------end----验证uid的有效性
   }
   else
   {
      loginZtai = false;
      console.log("if (openId && uid)----reqReadUid:loginZtai=false");
      appSelf.loginFun();
   }
  
    //------------end if openid

  },

  getUserInfo: function(cb) {
    var that = this
    if (this.globalData.userInfo) {
      typeof cb == "function" && cb(this.globalData.userInfo)
    } else {
      //调用登录接口
      wx.getUserInfo({
        withCredentials: false,
        success: function(res) {
          that.globalData.userInfo = res.userInfo
          typeof cb == "function" && cb(that.globalData.userInfo)
        }
      })
    }
  },

  globalData: {
    userInfo: null
  },

  loginFun:function()
  {
    console.log("loginFun----------------------------");
    wx.clearStorage();
    wx.login({
      success: function (res) {
        if (res.code) {
          var openid;
          var session_key;
          var appid;
          var res_result;
          var resReq;
          //发起网络请求
          wx.request({
            url: config.api.reqReadOpenId,
            data: {
              "code": res.code,
              "wxid": config.static.wxid
            },
            method: 'GET',
            header:
            {
              'content-type': 'application/json'
            },
            success: function (res) {
              var result = res.data.result || [];
              if (result == "ok") {
                res_result = "ok";
                console.log("result:" + result);
                var udata = res.data.udata;
                openid = udata['openid'];
                session_key = udata['session_key'];
                appid = res.data.appid;
                //var uid = res.data.uid;

                wx.getUserInfo({
                  withCredentials: true,
                  success: function (res_user) {
                    var userInfo = res_user.userInfo;
                    var nickName = userInfo.nickName;
                    var avatarUrl = userInfo.avatarUrl;
                    var gender = userInfo.gender; //性别 0:未知、1:男、2:女
                    var province = userInfo.province;
                    var city = userInfo.city;
                    var country = userInfo.country;
                    var unionId = userInfo.unionId;
                    console.log("unionId:" + unionId);
                    //console.log("nickName:" + nickName +" avatarUrl:"+avatarUrl);
                    wx.request({
                      //后台接口地址
                      url: config.api.reqUserAddUserInfor,
                      data:
                      {
                        "openid": openid,
                        "session_key": session_key,
                        //'uid': uid,
                        "appid": appid,
                        "signature": res_user.signature,
                        "encryptedData": res_user.encryptedData,
                        "iv": res_user.iv,
                        "rawData": res_user.rawData,

                        "nickName": nickName,
                        "avatarUrl": decodeURI(avatarUrl),
                        "gender": gender,
                        "province": province,
                        "city": city,
                        "country": country,
                        "unionId": unionId,
                      },
                      method: 'GET',
                      header:
                      {
                        'content-type': 'application/json'
                      },
                      success: function (res_infor) {
                        //var json = eval('(' + res_infor.data + ')');
                        var infor = res_infor.data;
                        var clist = infor.split(",");
                        console.log(clist[0]);
                        if (clist[0] = "ok") {
                          //-------------------------set user openId
                          wx.setStorageSync('uid', clist[1]);
                          wx.setStorageSync('openId', clist[2]);
                          console.log("openid:" + clist[2] + " uid:" + clist[1]);
                          console.log(res_infor.data);
                         
                        }
                        else {
                          console.log("false");
                        }

                      }
                      //------------------------------------------------------end success: function (res_infor)
                    })//------------------------------------------------------end wx.request
                  },//---------------------------------------------------------success: function (res_user) 
                  fail: function () {
                    wx.showModal({
                      title: '警告通知',
                      showCancel: false,
                      content: '您点击了拒绝授权,将无法正常显示个人信息,点击确定重新获取授权。',
                      success: function (res_mod) {
                        if (res_mod.confirm) {
                          wx.openSetting({
                            success: function (res) {
                              if (res.authSetting["scope.userInfo"]) {
                                //-----------------------------------------------------------------begin---开启授权页面

                                wx.getUserInfo({
                                  withCredentials: true,
                                  success: function (res_user) {
                                    var userInfo = res_user.userInfo;
                                    var nickName = userInfo.nickName;
                                    var avatarUrl = userInfo.avatarUrl;
                                    var gender = userInfo.gender; //性别 0:未知、1:男、2:女
                                    var province = userInfo.province;
                                    var city = userInfo.city;
                                    var country = userInfo.country;
                                    var unionId = userInfo.unionId;
                                    console.log("unionId:" + unionId);
                                    console.log("重新启用: nickName:" + nickName + " avatarUrl:" + avatarUrl);
                                    wx.request({
                                      //后台接口地址
                                      url: config.api.reqUserAddUserInfor,
                                      data:
                                      {
                                        "openid": openid,
                                        "session_key": session_key,
                                        //'uid': uid,
                                        "appid": appid,
                                        "signature": res_user.signature,
                                        "encryptedData": res_user.encryptedData,
                                        "iv": res_user.iv,
                                        "rawData": res_user.rawData,

                                        "nickName": nickName,
                                        "avatarUrl": decodeURI(avatarUrl),
                                        "gender": gender,
                                        "province": province,
                                        "city": city,
                                        "country": country,
                                        "unionId": unionId,
                                      },
                                      method: 'GET',
                                      header:
                                      {
                                        'content-type': 'application/json'
                                      },
                                      success: function (res_infor) {
                                        //var json = eval('(' + res_infor.data + ')');
                                        var infor = res_infor.data;
                                        var clist = infor.split(",");
                                        console.log(clist[0]);
                                        if (clist[0] = "ok") {
                                          //-------------------------set user openId
                                          wx.setStorageSync('uid', clist[1]);
                                          wx.setStorageSync('openId', clist[2]);
                                          console.log("openid:" + clist[2] + " uid:" + clist[1]);
                                          console.log(res_infor.data);
 

                                        }
                                        else {
                                          console.log("false");
                                        }

                                      }
                                      //------------------------------------------------------end success: function (res_infor)
                                    })//------------------------------------------------------end wx.request
                                  }
                                })
                                //---------------------end wx.getUserInfo({})  
                                //-----------------------------------------------------------------end---开启授权页面
                              }
                            },
                            fail: function (res) {

                            }
                          })
                        }
                        //----end if (res_mod.confirm) 
                      }
                    })
                  },//------------------------------------------------------------------end fail: function () 
                  complete: function (res) { }
                })
                //----------------------------------------------------------------------end wx.getUserInfo
                //wx.setStorageSync('uid', uid);
                //wx.setStorageSync('openId', openid);//-------------------------set user openId
                //console.log("openid:" + wx.getStorageSync('openId') + " uid:" + wx.getStorageSync('uid')); 

              }
              else {
                console.log('获取openid失败!' + res.msg);
              }
            }
          });
          // ------------------------------------------------------- wx.request config.api.reqReadOpenId
          console.log("res_result:" + res_result + ";appid:" + appid);
          if (res_result == "ok") {

          }
          //end res_result=="ok"

        }
        else {
          console.log('获取用户登录态失败!' + res.errMsg)
        }
      }
    });
    //---------------end first login
  }
//-----------------------------------------------------------------------------end loginFun



})


微信小程序wx.switchTab页面刷新设置代码:

wx.switchTab({
   url: '/pages/personal/index',
   success: function (e) 
   {
       var page = getCurrentPages().pop();
       if (page == undefined || page == null) return;
       page.onLoad();
       console.log("personal2--------------------------------------1");
     } 
  })






注:本文转载自拾图网[http://www.tshinet.com],转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如有侵权行为,请联系我们,我们会及时删除。
上一篇 下一篇

淘宝热销

  • Mistine小黄帽防晒霜乳SPF50泰版面部防紫外线隔离男女军训蜜丝婷

    【推荐理由】赠运费险

    【优惠券】20   【券后价】59.00

    【下单链接】18¥ CZ0001 G5fHdEqOsnB¥

    >>>>>> 马上打开

  • G7旗舰店越南进口美式纯黑咖啡粉速溶无糖0脂减燃正品学生提神

    【推荐理由】库存紧张,好评过万

    【优惠券】3    【券后价】26.90

    【下单链接】27¥ CZ0001 zb0bdEqLV7G¥

    >>>>>> 马上打开