- 微信发布体验版小程序
- 手机打开体验版小程序(正常校验token,没问题)
- 关闭小程序进程,再次打开小程序
- 此时token校验失败
- 再关闭,再打开,没问题
- 再关闭,再打开,出问题
- 。。。。。。
linnian
- 发布:2020-08-01 13:18
- 更新:2020-10-21 14:24
- 阅读:1177
产品分类: uniCloud/App
操作步骤:
预期结果:
。
。
实际结果:
。
。
bug描述:
uni-id的token校验有问题。
我在发布到微信小程序,然后上传了体验版之后。当我在体验版第一次登录之后,校验token 时,发现:
- 隔着一次(意思就是关闭体验版小程序,再开启体验版小程序。当然,我指的是手机上的体验版小程序),会报一次token校验失败的错误30201(设备特征码校验错误)
- 前提条件:我的所有云函数都需要校验token。
- 打开小程序,没问题的时候,所有云函数都可以正常访问。出问题的时候,所有云函数都不能访问,全部报30201错误
查询日志,发现前后校验的是同一个token
经过多次尝试,确认是隔着一次出问题。比如这次没问题,下次必报错;这次报错下次必没问题。这种神经质问题。
- 是多设备支持导致的问题吗?
5 个回复
linnian (作者)
我发现开发者工具没问题,就是在真机运行时出现的问题。
才疏学浅,虽然看了你们的源码,但是没看懂。
DCloud_uniCloud_WYQ
30201是为了防止token被拷贝走做的简单ua校验,你是只有体验版有这个问题吗?真机调试或者真机运行有没有问题
linnian (作者)
我就是说真机调试有问题啊,使用另一个微信账户使用小程序也是一样的问题
2020-08-03 12:37
linnian (作者)
DCloud_uniCloud_WYQ
可以写一个云函数返回一下context.CLIENTUA看一下,是不是每次ua不一样
2020-08-03 14:53
linnian (作者)
回复 DCloud_uniCloud_WYQ: 这是没问题的日志
[list/ac1411941596438425902768474/23ms/DEBUG] Mozilla/5.0 (Linux; Android 10; MI 8 Build/QKQ1.190828.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/78.0.3904.62 XWEB/2574 MMWEBSDK/200601 Mobile Safari/537.36 MMWEBID/2274 MicroMessenger/7.0.16.1700(0x2700103E) Process/appbrand0 WeChat/arm32 NetType/WIFI Language/zh_CN ABI/arm64
[list/ac1411941596438425902768474/94ms/DEBUG] 开始执行
[list/ac1411941596438425902768474/211ms/DEBUG] 结果 { data: { affectedDocs: 3, data: [ [Object], [Object], [Object] ] },
code: 0 }
2020-08-03 15:08
linnian (作者)
回复 DCloud_uniCloud_WYQ: 这是出问题的日志
[list/ac140f2a1596438440758571574/1ms/DEBUG] Mozilla/5.0 (Linux; Android 10; MI 8 Build/QKQ1.190828.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/78.0.3904.62 XWEB/2574 MMWEBSDK/200601 Mobile Safari/537.36 MMWEBID/2274 MicroMessenger/7.0.16.1700(0x2700103E) Process/appbrand2 WeChat/arm32 NetType/WIFI Language/zh_CN ABI/arm64
[list/ac140f2a1596438440758571574/2ms/ERROR] token检验错误 { code: 30201, msg: 'token不合法,请重新登录' }
2020-08-03 15:09
linnian (作者)
回复 DCloud_uniCloud_WYQ: 经过在线比较工具,发现了不同:Process/appbrand0 和 Process/appbrand2,位于倒数第二行右边,请问这两个参数代表什么
2020-08-03 15:18
linnian (作者)
搜索关键字,猜测是小程序的多进程。这应该是uiid的bug吧
DCloud_uniCloud_WYQ
我调研一下
2020-08-03 16:56
DCloud_uniCloud_WYQ
插件市场uni-id已更新,截断了微信小程序UA里可能会随意变化的部分。另外提供了一个bindTokenToDevice选项用以控制是否将token和设备ua绑定,默认为绑定
2020-08-03 21:04
linnian (作者)
回复 DCloud_uniCloud_WYQ: 感谢您的热心回复
2020-08-03 23:36
李钊 - 李钊
我也遇到了
DCloud_uniCloud_WYQ
你用的什么版本的uni-id?这个问题现在已经修复了
2020-10-21 14:42