微信小程序 服务端shiro用户验证,偶然会出现验证失败的问题。

1、开始有人反应用偶然会加载失败的情况,一开始还不太相信,因为每次手机运行都正常(iOS)。

2、查看日志,发现果然有验证不通过的问题出现。

3、经过测试跟踪发现了成功的时候返回的数据,与失败的时候返回的数据的顺序不一样。

4、失败的情况都是android手机,iOS没有发现过这种问题。

失败的时候:

微信小程序 服务端shiro用户验证,偶然会出现验证失败的问题。

 成功的时候:

微信小程序 服务端shiro用户验证,偶然会出现验证失败的问题。

Shiro的认证,是通过JSESSIONID来的。

测试了很多次,只要是正常验证通过的,都是JSESSIONID开头的。

 

解决:

将开始的代码:

wx.setStorageSync("sessionId", res.header["Set-Cookie"]);

改为:

var cookie = res.header['Set-Cookie']
           // 字符串分割成数组
           var cookieArray = cookie.split(/,(?=[^,]*=)/)
           // 分号拼接数组
           var newCookie = cookieArray.join(';')
           // 存储拼接后的cookie
           try {
             wx.setStorageSync('sessionId', newCookie)
           } catch (error) {
             log.error('setStorageSync cookie fail')
           }

 

参考:

https://blog.csdn.net/czx0132/article/details/110101854 (分析的相当精典)

 

上一篇:sql group by 理解


下一篇:网络安全-常见的web攻击手段