最近运营同事在管理平台(生产环境)上碰到一个问题:登录之后会莫名其妙地变成未登录状态,被踢回登录页面。
管理平台使用的Spring MVC框架实现的后台接口,React实现的前台页面。之前引入React的时候已经做过前后端分离。但是当时考虑到技术栈的原因,没有对登录体系进行彻底改造,没有引入AccessToken来维护登录状态,依然保留了Java的Session机制。考虑到管理平台属于内部使用,访问量不大,因此直接在Nginx层使用iphash进行了Session粘滞,确保同一个用户的请求总是被同一个的后台Tomcat处理,这样就可以使用传统的session机制保持用户登录状态。