问题:就在昨晚利用下班时间,帮助好友解决了一个Bug,问题是这样:通过session将值保存到Cookie中实现用户的登录,但是在用Debug启动走断点的时候发现session能保存进去,但是调用login接口是却拿不到值,一直为null,(日志输出为null)但是run启动就能拿到值,成功登录,(日志输出有值)
目录
1.思考是不是正常run启动和Debug启动两种启动方式不一样
问题排查经过:
1.思考是不是正常run启动和Debug启动两种启动方式不一样
经过查阅资料,确实有不一样,但是经过验证很快就推翻了这条思路
验证:因为两种方式启动之后,只要Debug快速的走完断点,就能登录成功
这时候突然看到这个

这里基本就能确定应该是设置了超时时间
2.在nginx里查看超时时间,
并将超时时间全部加到20000ms
验证:还是没用
3.突然想到也可以在前端加超时时间(有用)
因为前端项目不是我做的(具体也不知道在哪里找),但是这种超时时间大概率会以全局方式进行设置,所以只要找公共的文件配置就行,看到2000基本确定就是这了,加到20000改完之后

验证:还是没用,我懵了
4.清除缓存
验证:有用!
所以问题就是出在3,因为浏览器默认的超时时间是20分钟,过了这个时间session会被清除,前端设置了这个超时时间为2秒清除

本文记录了一次利用下班时间解决好友项目的Bug经历,问题在于通过session保存值到Cookie实现用户登录时,在Debug模式下值无法被正确读取。文章详细介绍了从不同角度排查此问题的过程,并最终确定为前端超时设置与浏览器缓存导致的问题。
1万+

被折叠的 条评论
为什么被折叠?



