微信小程序获取openid(用户唯一身份识别)

本文介绍了微信小程序中如何获取并存储用户openid的步骤,包括在JS文件定义appid和secret对象,然后在onLoad生命周期中获取openid,并从缓存中读取该信息。

1.首先在js文件中定义存储appid,secret对象

在这里插入图片描述
2.在onLoad生命周期函数里面获取openid

    /**
       * 生命周期函数--监听页面加载
       */
      onLoad: function (options) {
        var that = this
        var user = wx.getStorageSync('user') || {};
        var userInfo = wx.getStorageSync('userInfo') || {};
        if ((!user.openid || (user.expires_in || Date.now()) < (Date.now() + 600)) && (!userInfo.nickName)) {
          wx.login({
            success: function (res) {
              if (res.code) {
                wx.getUserInfo({
                  success: function (res) {
                    var objz = {};
                    objz.avatarUrl = res.userInfo.avatarUrl;
                    objz.nickName = res.userInfo.nickName;
                    //console.log(objz);
                    wx.setStorageSync('userInfo', objz);//存储userInfo
                  }
                });
                var d = that.globalData;//这里存储了appid、secret、token串  
                var l = 'https://api.weixin.qq.com/sns/jscode2session?appid=' + d.appid + '&secret=' + d.secret + '&js_code=' + res.code + '&grant_type=authorization_code';
                wx.request({
                  url: l,
                  data: {},
                  method: 'GET', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT  
                  // header: {}, // 设置请求的 header  
                  success: function (res) {
                    var obj = {};
                    obj.openid = res.data.openid;
                    obj.expires_in = Date.now() + res.data.expires_in;
                  //存储openid
                    wx.setStorageSync('user', obj); 
                  }
                });
              } else {
                console.log('获取用户登录态失败!' + res.errMsg)
              }
            }
          });
         }

3.取出缓存中的openid

    try {
          var value = wx.getStorageSync('user');
          } catch (e) {
          console.log(value)
        }

在这里插入图片描述
结束…

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值