在微信小程序里,获取用户信息是需要有一个顺序的,必须先请求login接口,再请求getUserInfo,如果先请求getUserInfo再请求login会出现getUserInfo执行了,但是login没有执行的问题,并且login没有任何报错。
正确逻辑如下
wx.login({
success: (res) => {
wx.getUserInfo({
//成功后会返回
success: (res) => {}
})
}
})
在拿openId时要注意,小程序里面为了保证安全,相关的东西都应该在后端进行请求和获取(例如appid,secret)这样才能避免有人去反编译代码直接拿到敏感信息,拿openid的接口是这个https://api.weixin.qq.com/sns/jscode2sessionhttps://api.weixin.qq.com/sns/jscode2session
这个接口如果在前端请求的话必然会报错,因为没有在小程序管理页面配置合法域名(相当于白名单)
jscode2session Fail {
"data":{
"errno":600002,
"errMsg":"request:fail url not in domain list"
}
}
这个错的意思是没有在小程序管理页面配置该域名,但是如果去配置该域名的话会发现根本配不上,微信官方已经给出了解释
所以最好的办法就是让后端去获取这些东西。