开发流程: 进入页面接口报401时,
1、弹窗弹出一瞬间wx.login获取到最新code,然后通过点击弹窗的按钮getPhoneNumber获取到 encryptedData和 iv ,弹窗关闭,
用wx.checkSession进行检测,
a、success时,把code, encryptedData和 iv 传给后端进行解析
b、fail时,则进行步骤1的行为
在wx.checkSession 遇到两种极端情况
1、有些人账号一直进入success,即使删除工具的登陆缓存,还是会一直进入success
2、有的人账号一直进入fail,明明在wx.checkSession 之前已经wx.login居然会检测失败(以上情况只有开发者工具会这样,手机端会一直进入success)
然后针对一直进入fail的情况,我不再用wx.checkSession进行检测,把code, encryptedData和 iv 直接传给后端进行解析,结果居然能解析成功!!
由于怀疑不用code也可以解析,我进行了测试,发现code还是必须要传的,但是第一次登陆的code和第二次登陆的code居然都可以解析出电话号码
所以我的问题是:
一、session_key的时效性是怎么样的?难道删除开发工具的的登陆缓存不能导致session_key失效吗?
二、wx.login后再wx.checkSession进入fail是因为什么导致的?
三、明明wx.checkSession 进入fail里了,为何code传给后端,还能解析成功?既然解析能成功,为何进入了fail事件?
四、getPhoneNumber获取到的encryptedData和 iv 不用跟最新wx.login的code 也能进行解析吗?
正经的问题都没人回答,这个问题已经很多人提问了,没有一个官方给出正确解决办法
我现在也遇到了。你是怎么解决的
我也还没解决
找到临时解决办法了。把wx.checkSession去掉也可以用。发现开放平台调用wx.checkSession有这个问题。