微信如果只要获取用户信息,而不需要获取用户openid的话,那么直接通过button就能够得到了,具体可以参考该网页,具体代码如下:
1 2 |
<button open-type="getUserInfo" lang="zh_CN" bindgetuserinfo="onGotUserInfo"> |
1 2 3 4 5 6 |
onGotUserInfo(e) { console.log(e.detail.errMsg) console.log(e.detail.userInfo) console.log(e.detail.rawData) }, |
但是使用wafer2的框架,如果要登录的话,上面的信息直接得到的是没有openID的,openID被加密了,需要和session-key一起揭秘才能得到,具体说明可以见这个页面
那么我们使用wafer2的框架代码,已经帮我们写好了解密的程序,不过直接运行的时候是会报错的,这是因为:
1 2 |
出于安全考虑,即日起,我们不再帮助用户无感知的申请腾讯云云 API 密钥,受此影响,腾讯云微信小程序解决方案 Wafer2 提供的 sdk.config.json 中的 qcloudSecretId 和 qcloudSecretKey 字段将为空,这会导致登录失败,并返回错误提示:ERR_REQUEST_PARAM 。 |
具体解决方案有两种:
- 关闭腾讯云代理登录,使用微信小程序 AppID 和 AppSecret 登录:
修改 server/config.js 中的 useQcloudLogin 为 false,并填写上 appId 和 appSecret 字段(分别为微信小程序的 AppID 和 AppSecret),重新部署代码即可。
- 手动填写腾讯云云 API 密钥:
登录腾讯云云 API 密钥控制台申请云 API 密钥,并在 server/config.js 的 CONF 中添加如下三个字段:
1 2 3 4 |
qcloudAppId: '你的腾讯云 AppID', qcloudSecretId: '你的腾讯云 SecretId', qcloudSecretKey: '你的腾讯云 SecretKey', |
重新部署代码即可生效。
用第一种方法改了之后,登录成功~