微擎建议
< 建议列表 / 建议详情
建议信息
使用post情况下会出现签名错误BUG及问题所在
2020-05-26 11:16:01
0
问题描述:

小程序启用token,用util.request的post模式和后台通讯时会出现“签名错误”的BUG。

建议方案:

请排查,是因为在util.js的第91行,有

    if (data) {       var theRequest = [];       for (let param in data) {         if (param && data[param]) {           theRequest = theRequest.concat({             'name': param,             'value': data[param]           })         }       }       querystring = querystring.concat(theRequest);     }

在post模式下,会把要Post的数据也加入签名。但是根据文档描述及后台代码来看,post数据并不会加入签名,因此导致了“签名错误”的bug。
建议判断method是get的情况下再来加上data的内容。

当然,上面只是第一层。




第二层就是,如果get要传输的数据中有中文的话,依然有bug。
因为小程序端构造的签名数据中,中文没有任何编码,而后台构造的签名数据中,中文是经过了urlencode编码的,所以会再次出现这个bug。
自己想办法解决吧。


帮忙找Bug并解决有奖赏吗?直接送我一个开发者认证吧?



沟通评论

管理员将状态修改为{{statusText(item.status)}} {{item.system == 1?'管理员':'微擎用户'}} {{item.created_at}}

加载更多...