项目上线测试,发现微信安卓端存在用户登录无法验证session情况, 导致每次接口请求都无法识别,而苹果客户端不会出现此问题,非微信环境打开不会出现此问题,找到一些解决方案做下记录:
方案1:
由于微信内嵌浏览器对所有请求都做了代理,导致出去的ip不固定,从而导致腾讯云服务器的黏性session(基于客户端ip做的黏性session)失效。所以,解决方案有两个,要么服务器端只用一台tomcat,要么tomcat做session共享,比如 session放在Redis中。这样server1产生的sessionid,即使到了server2,也能从redis中找到。
具体参考:http://blog.csdn.net/wangjun5159/article/details/51966137
方案2:
取open_id,取到之后去数据库查,如果有直接登录,没有授权登录 完了把open_id 保存到数据库
方案3:
在控制层保持值session后,跳转到页面,在页面进行操作后请求另一个控制层去取session中的值。