我们团队做小程序登录有一个微信登录功能,是先获取用户手机号,然后通过我们自己的后台做微信登录。但是有一个问题是所以我们使用两版方案:
第一版的方案是在小程序加载时就获取code,然后把code传给后台解析session-key。但是code是一个临时凭据,可能会过期。
第二版的方案是在getPhoneNumber回调中获取code,以保证code的时效性。但是微信官方建议:在getPhoneNumber前一定要先获取code。否则会导致getPhoneNumber的加密信息和解密时的信息不一致。我们这边测试的结果是如果连续做登入登出就会出现登录失败的情况。
请问大家在做登录时获取code和将code传给后台应该怎么处理,该在什么时机处理?
<button open-type="getPhoneNumber" catchtap="login" bindgetphonenumber="getWxPhone">绑定微信手机号</button>
点击绿色按钮后触发catchtap,此时调用wx.login保存code 同时系统会弹窗如图, 点击允许后触发bindgetphonenumber,此时携带code肯定是新鲜的
加个点击事件,先执行点击事件获取code,然后再是授权框,每次都是最新的
个人处理,点击获取手机号的时候调用wx.login获取code,成功之后将encryptedData、iv、code 一并传给后端处理