码迷,mamicode.com
首页 > 其他好文 > 详细

跨越请求,关于后端session会话丢失的解决办法(转载)

时间:2016-11-26 23:29:29      阅读:462      评论:0      收藏:0      [点我收藏+]

标签:请求   恰恰   网站   用户   cat   跨域   服务   pac   技术分享   

目前使用前后端分离的模式开发,后端提供跨域接口、前端jsonp调用,绑定数据,但是在该站点下有个人中心模块存在的情况下,服务端的session会话会被跨域请求覆盖改掉

大家都知道tomcat使用cookie中jsessionid来区分客户端session会话

跨域请求接口恰恰有时候响应回来回改变该站点下的jsessionid值,导致服务器每次判断都是一个新的会话

 

以网站个人中心模块来说,每一个跨域jsonp请求,都会Response 一个cookie值,SET-COOKIE:JSESSIONID=XXXX,如下图:

 技术分享

 

 

再看服务端,前端刷新一次也没,后端服务会话id都不是同一个sessionid,所有后端所有的请求都是未登录,这就导致前端发送的请求,后端无法拿到当前个人用户信息

技术分享

 

目前服务端部署都采用tomcat,所以修改办法是在conf/context.xml文件中,设置sessionId的cookieName别名,不和默认的jsessionid一直,如下:

技术分享

最终修改好后,再看服务器的cookie值,服务端使用session取的cookie值是刚刚设置的别名cookie值SHGJSESSIONID,所以不受跨域接口影响

技术分享

最终服务端请求的session会话能保证是同一个,所以也能取到当前登录的个人信息

 技术分享

 

 

更多tomcat参数设置值请参考  tomcat-context参数值

跨越请求,关于后端session会话丢失的解决办法(转载)

标签:请求   恰恰   网站   用户   cat   跨域   服务   pac   技术分享   

原文地址:http://www.cnblogs.com/fanxiumin/p/6105460.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!