微信公众号开发

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

本文主要是介绍微信小程序 服务端shiro用户验证,偶然会出现验证失败的问题。,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

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

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

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

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

失败的时候:

 成功的时候:

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 (分析的相当精典)

 

这篇关于微信小程序 服务端shiro用户验证,偶然会出现验证失败的问题。的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!