收藏
回答

7.0.0版本小程序授权登录使用其他手机号登录无效

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug login 客户端 7.0.0 2.4.4

- 当前 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)

}

}

})

}

回答关注问题邀请回答
收藏

8 个回答

  • Z
    Z
    2019-01-03

    你会不会是后台查表的顺序导致的?我们公司的小程序也碰到了这个问题,但是是因为后台查询的时候是先以code获取的oppenid查表的,查不到再去解密按照手机号查询,再查不到就要求注册。


    这种方法就不适合新版本微信了

    2019-01-03
    有用 2
    回复 4
    • y
      y
      2019-01-03

      那怎么获取其他手机的oppenid啊,有解决办法吗

      2019-01-03
      回复
    • Z
      Z
      2019-01-03回复y

      openid针对于微信,每个微信账号在小程序里有一个openid,你获取的只是当前用户登录微信的openid,这是不变的。

      跟手机号没多大关系,如果你是我说的那种情况的话,建议后台直接先解密获取手机号,然后以手机号作为第一查表方式

      2019-01-03
      回复
    • y
      y
      2019-01-04回复Z

      如果以手机号为第一查表方式,那新手机号存数据库的时候openid  还是当前登录微信的openid哦,openid怎么存呢?存了的话openid就不是唯一的了, 不存的话就不能通过openid 来确认是微信过来的唯一用户了

      2019-01-04
      回复
    • Z
      Z
      2019-01-04回复y

      这个时候确实不能再去存openid了,只能以手机号作为唯一标识,目前我这里也没有想到更好的解决办法

      2019-01-04
      回复
  • 星火🌟
    星火🌟
    2019-12-26

    和楼楼遇到同样的问题了,用本机号码就能登陆,切换到其他手机号登录就不行(∑(っ°Д°;)っ报错),楼主当时是因为什么呢?后续是怎么解决的呢?(o゚▽゚)o求赐教  

    2019-12-26
    有用 1
    回复
  • 给钱,谢谢!
    给钱,谢谢!
    2019-01-14

    兄弟,你这个页面咋写的,这是组件么

    2019-01-14
    有用 1
    回复 2
    • Levi
      Levi
      2019-06-21

      同问,我也想知道这个是什么组件,由谁能告诉一下吗?

      2019-06-21
      回复
    • 长安某
      长安某
      2019-07-05

      这个组件需要认证的企业号,获取授权手机号时显示这个组件,而且需要真机调试

      2019-07-05
      1
      回复
  • Zzz
    Zzz
    2021-04-28

    请问获取验证码事件api在哪写

    2021-04-28
    有用
    回复
  • 双木林
    双木林
    2020-09-16

    你好,遇到的问题现象是,点击使用其他手机号码,然后输入手机号和验证码之后,只要选择了底部的“保存此号码供以后授权使用”,然后完成,回到授权页,那选中这个新号码就可以传送到后端。但如果不选中“保存此号码供以后授权使用”,然后完成,回到授权页,选中新号码点击再点击“允许”,没有反应。

    2020-09-16
    有用
    回复
  • .
    .
    2019-08-06

    您好,请问问题解决了嘛

    2019-08-06
    有用
    回复 3
    • y
      y
      2019-08-15
      解决了
      2019-08-15
      回复
    • .
      .
      2019-08-19回复y
      请问怎么解决的呢
      2019-08-19
      回复
    • 石头一块
      石头一块
      2020-06-05回复y
      是不是后端比较了2个手机号。。
      2020-06-05
      回复
  • 疯狂的小辣椒
    疯狂的小辣椒
    2019-01-03

    你好,请问是不是连续调用两次 wx.login code 没有更新?

    2019-01-03
    有用
    回复 1
    • y
      y
      2019-01-03

      没有啊,只调了一次,只有授权登录点击允许按钮才会调wx.login()

      2019-01-03
      回复
  • 灵芝
    灵芝
    2019-01-03

    麻烦提供出现问题的机型和微信版本,以及能复现问题的代码片段https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html

    2019-01-03
    有用
    回复 2
    • y
      y
      2019-01-03
      微信7.0.0版本,所有机型,未上线正在测试的体验版本,登录切换手机号无效,只登录取绑定手机号;切换手机号点击允许授权调wx.login()发送code到后台换取对应openId,后台反应该code还是原来绑定手机号的code
      2019-01-03
      回复
    • 是正伟伟
      是正伟伟
      2021-08-10
      请问有解决办法吗
      2021-08-10
      回复
登录 后发表内容