# 微信获取用户信息和微信登陆

# 微信获取用户信息

用户打开小程序 ==> 查看本地是否有用户信息

​ ==> 有,直接使用

​ ==> 没有 ===> 调用查看是否授权

​ ==> 未授权 ===> 显示button,调用授权弹窗(获取用户信息,存储到本地) ==> 用户离开小程序后再次进入 ==> 从本地获取用户信息

​ ==> 已授权 ===> 不显示button,调用wx.getUserInfo(获取用户信息,存储到本地) ==> 用户离开小程序后再次进入 ==> 从本地获取用户信息

onload: function (){
    var that = this;

    var userInfo = wx.getStorageSync("userInfo");
    if(userInfo){
      this.setData({
        userInfo: userInfo
      })
    }else{
      // 查看是否授权
      wx.getSetting({
        success(res) {
          // 如果已经授权,查看是否是获取用户信息授权
          if (res.authSetting['scope.userInfo']) {
            // 已经授权,可以直接调用 getUserInfo 获取头像/昵称/性别/地址
            wx.getUserInfo({
              success: function (res) {
                // 设值
                that.setData({
                  userInfo: res.userInfo
                })
                // 存储到本地
                wx.setStorageSync("userInfo", res.userInfo)
              }
            })
          }else{
            // 未授权,显示button授权按钮
            that.setData({
              isShow: true
            })
          }
        }
      })
    }
}

# 微信登陆

逻辑: 用户打开小程序 == > 查看本地是否有 openId(有,直接使用) 没有 ==> 调用登陆接口,调用后台接口,拿取openId,存储到本地

// 微信登陆
var uid = wx.getStorageSync("uid");
if (!uid) {
	wx.login({
		success(res) {
			// 成功返回 code 用户登录凭证(有效期五分钟)
			if (res.code) {
				// 将 code 码发送给后台
				wx.request({
					url: "http://59.110.138.169/admin/xy/lite/student/onLogin",
					data: {
						code: res.code,
					},
					success: function(res) {
						console.log(res);
						wx.setStorageSync("uid", "res.data.data.id");
					},
				});
			} else {
				console.log("登录失败!" + res.errMsg);
			}
		},
	});
}
上次更新: 10/29/2019, 6:04:16 PM