uni-app 小程序项目无法直接获取到敏感信息,只能通过调用微信官方提供的数据解析接口获取。
- 登陆微信公众平台,获取绑定的AppID(小程序ID)和AppSecret(小程序密钥)
- 调用 uni.login 获取 js_code 用于解析
- 调用方法获取 openid
/**
* @Author: licheng
* @Date: 2019/12/20 3:28 下午
* @Description:
*/
const getUserInfo = () => {
return new Promise((resolve, reject) => {
uni.getProvider({
service: "oauth",
success: res => {
// console.log(res);
const provider = res.provider[0];
uni.login({
provider,
success: loginRes => {
// console.log(loginRes);
const code = loginRes.code;
const appid = "这里填写小程序ID";
const secret = "这里填写小程序密钥";
const url = `https://api.weixin.qq.com/sns/jscode2session?appid=${appid}&secret=${secret}&js_code=${code}&grant_type=authorization_code`;
uni.request({
url,
success: dataRes => {
// console.log(dataRes);
uni.getUserInfo({
provider,
withCredentials: true,
success: infoRes => {
// console.log(infoRes);
// 返回openId、用户信息、服务商等
resolve({...dataRes.data, ...infoRes.userInfo, provider});
}
});
}
});
},
});
}
});
});
};
export default getUserInfo;