小程序登录获取用户信息

241 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

小程序登录获取用户信息

本篇记录讲解

小程序登录,是现在小程序里面很普遍的一个功能,因为官方提供的方法,可以一键获取到用户信息,一键拿到手机号,本篇主要记录,本人开发小程序时,做登录过程中遇到的问题及解决方法)。

小程序登录

wxml注意事项:

  1. 小程序的登录和获取用户信息是两部分!
  2. 登录方法我写在app.js的onshow里面,因为可以保证小程序每次登录都可以拿到最新的用户信息。
  3. 因小程序官方更新要求,现在获取用户信息,必须是主动触发去获取。
  4. 主动触发的事件,必须绑定在标签上面才可以。(根据需求自己定义按钮位置)

app.js登录代码如下:

`//封装成方法,方便在小程序其他页面调用

login: function () {

  var that = this;
  wx.login({ //微信官方登录方法
     fail: function (err) {
        console.log("login.fail", err);
     },
     complete: function (msg) {
        console.log("login.complete", msg);
     },
     success: function (loginInfo) {//登录成功,拿到第三方平台code
  //这里因为产品需求,调用了第三方平台的code,做了判断和保存
        that.globalData.loginInfo = loginInfo.code   //存取第三方平台code到公用数据字段
        if (wx.getExtConfig) {//第三方平台判断,具体不知道啥意思,API这么写的
           wx.getExtConfig({ //确定第三方平台信息拿到,开始调用登录接口。
              success: function (res) {
                 that.globalData.code = res.extConfig.code; //这个code是微信的code和第三方的code不一样。
                 wx.request({ //请求方式和参数,做过交互的一看就懂,不多BB
                    url: (that.globalData.server_root2 + "/v1/user/login"),
                    method: "POST",
                    header: {
                       'content-type': 'application/x-www-form-urlencoded'
                    },
                    data: {
                       wxcode: loginInfo.code,
                       code: res.extConfig.code 
                    },
                    success: function (result) {
                    //登录接口调用成功以后,会拿到两个参数
                    //1.用户的唯一标识(每个用户的唯一标识都不一样)
                    //2.sessionKey  ,每次登录的sessionKey 都不一样。
                    
                       var userInfo = {
                       //这是我自己定义的一个对象,这里面的数据是根据微信获取用户信息的格式来定义的,
                       方便做获取用户信息的时候,获取的数据存储位置统一。
                          //生日
                          birthday: result.data.data.birthday,
                          //性别 0未知 1男 2女
                          gender: result.data.data.gender,
                          //用户头像
                          head_photo: result.data.data.head_photo,
                          //用户微信昵称
                          nick_name: result.data.data.nick_name,
                          // 真实姓名
                          real_name: result.data.data.real_name,
                       };
   
                    }
                 });
              }
           })
        }
     }
  })

},

`

登录成功以后-------获取用户信息

wxml部分:

<button lang="zh_CN" open-type="getUserInfo" bindgetuserinfo="onGotUserInfo" class='butn'></button>

js部分:

`onGotUserInfo: function (e) { //获取用户信息方法,注意一定要取到 "e"

  var that = this
  var wxUserInfo = e.detail.userInfo;  
  var cacheUserInfo = wx.getStorageSync("userInfo");

  var userInfo = {};
  userInfo.head_photo = wxUserInfo.avatarUrl;
  userInfo.nick_name = wxUserInfo.nickName;
  userInfo.gender = wxUserInfo.gender;
  userInfo.country = wxUserInfo.country;
  userInfo.country = wxUserInfo.city;
  userInfo.country = wxUserInfo.province;
  that.setData({
     user_info: userInfo
  })
  //获取用户信息,只要根据自己需求单独存起来就好了。
  

}, `

小结:至此,登录和获取用户信息,就介绍完了,在这其中,因为方便小程序能拿到用户信息。
做了好多按钮的摆放,最后选择了透明遮罩,如有好的方法,请告知