微信小程序利用openid登录

这次是通过微信小程序的openid登陆,openid是用户的唯一标识

//app.js
var nickName;
var head;
var api = require('common/js/api.js')

App({
  onLaunch: function () {
    // 展示本地存储能力
    var that = this;
    
    login();
    function login() {
      wx.checkSession({
        success: function () {
          // wxlogin();
          var mid = wx.getStorageSync('mid');
          wxlogin();
          if (mid.length === 0) {
            wx.openSetting({
              success: function (data) {
                if (data) {
                  if (data.authSetting["scope.userInfo"] == true) {
                    // loginStatus = true;
                    wx.getUserInfo({
                      withCredentials: false,
                      success: function (res) {
                        wxlogin();
                      },
                      fail: function () {
                        console.info("2授权失败返回数据");
                      }
                    });
                  }

                }
              },
              fail: function () {
                console.info("设置失败返回数据");
              }
            });
            wxlogin();
            console.log('进来了')
          }
        },
        fail: function () {
          wxlogin();
        }
      });
    };
    function wxlogin() {
      wx.login({
        success: function (res) {
          var js_code = res.code;
          if (res.code) {
            //发起网络请求
            // 获取用户信息
            wx.getUserInfo({
              withCredentials: true,
              success: function (res) {
                nickName = res.userInfo.nickName;
                head = res.userInfo.avatarUrl;

                // 传入用户姓名和jscode
                wx.request({
                  url: api.api.login,
                  header: { "Content-Type": "application/x-www-form-urlencoded" },
                  method: 'POST',
                  data: {
                    'js_code': js_code,
                    'nickname': nickName,
                    'head': head,
                    'encryptedData': res.encryptedData,
                    'iv': res.iv
                  },
                  success: function (res) {
                    that.globalData.nickname = nickName;
                    that.globalData.avatarUrl = head;
                    //获取session
                    var sess = res.data.data.key
                    wx.setStorageSync('mid', sess);
                    that.globalData.oid = wx.getStorageSync('mid')
                    console.log(that.globalData)
                    console.log(head)
                  }
                });
              }
            });
          } else {
            console.log('获取用户登录态失败!' + res.errMsg)
          }
        }
      });
    }
    
  },
  globalData: {
    userInfo: null,
    oid: wx.getStorageSync('mid'),
    resultList: [],
    nickname: '',
    avatarUrl: ''
  }
})
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容