- 当前 Bug 的表现(可附上截图)
- 预期表现
体验版本小程序授权登录切换手机号可以登录对应手机的界面,实际只能登录原来绑定手机号的账号
- 复现路径
体验版本小程序授权登录切换手机号可以登录对应手机的界面,实际只能登录原来绑定手机号的账号
- 提供一个最简复现 Demo
getPhoneNumber: function(e) {
if (e.detail.errMsg === 'getPhoneNumber:ok') { //用户同意授权
this.setData({
phoneInfo: e.detail
})
this.login()
} else { //用户拒绝授权
console.log(199)
return;
//用户按了拒绝按钮
}
},
login: function(e) {
let that = this
wx.login({
success(res) {
if (res.code) {
wxGetData({
api: 'weixin/xcxLogin', //登录接
data: {
code: res.code,
encryptedData: that.data.phoneInfo.encryptedData,
iv: that.data.phoneInfo.iv
}
}).then(res => {
if (!res.data || res.data.code != '0') {
wx.hideLoading();
wx.showModal({
title: '提示',
content: '无法登录,请重试',
showCancel: false
})
return;
}
let userInfo = res.data.member
wx.setStorageSync('token', res.data.data.access_token)
wx.setStorageSync('userInfo', userInfo)
wx.navigateBack();
})
} else {
console.log('登录失败!' + res.errMsg)
}
}
})
}
你会不会是后台查表的顺序导致的?我们公司的小程序也碰到了这个问题,但是是因为后台查询的时候是先以code获取的oppenid查表的,查不到再去解密按照手机号查询,再查不到就要求注册。
这种方法就不适合新版本微信了
那怎么获取其他手机的oppenid啊,有解决办法吗
openid针对于微信,每个微信账号在小程序里有一个openid,你获取的只是当前用户登录微信的openid,这是不变的。
跟手机号没多大关系,如果你是我说的那种情况的话,建议后台直接先解密获取手机号,然后以手机号作为第一查表方式
如果以手机号为第一查表方式,那新手机号存数据库的时候openid 还是当前登录微信的openid哦,openid怎么存呢?存了的话openid就不是唯一的了, 不存的话就不能通过openid 来确认是微信过来的唯一用户了
这个时候确实不能再去存openid了,只能以手机号作为唯一标识,目前我这里也没有想到更好的解决办法
和楼楼遇到同样的问题了,用本机号码就能登陆,切换到其他手机号登录就不行(∑(っ°Д°;)っ报错),楼主当时是因为什么呢?后续是怎么解决的呢?(o゚▽゚)o求赐教
兄弟,你这个页面咋写的,这是组件么
同问,我也想知道这个是什么组件,由谁能告诉一下吗?
这个组件需要认证的企业号,获取授权手机号时显示这个组件,而且需要真机调试
请问获取验证码事件api在哪写
你好,遇到的问题现象是,点击使用其他手机号码,然后输入手机号和验证码之后,只要选择了底部的“保存此号码供以后授权使用”,然后完成,回到授权页,那选中这个新号码就可以传送到后端。但如果不选中“保存此号码供以后授权使用”,然后完成,回到授权页,选中新号码点击再点击“允许”,没有反应。
您好,请问问题解决了嘛
你好,请问是不是连续调用两次 wx.login code 没有更新?
没有啊,只调了一次,只有授权登录点击允许按钮才会调wx.login()
麻烦提供出现问题的机型和微信版本,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)