|
条件
- php部署在apahche服务器中,
- jsp部署在Tomcat中,到jsp的请求是从apache中代理转跳过去的.
- php和jsp请求的sessionid的名称不同.
需求:
- 用户在jsp网站登录或退出时,能同步到php网站相应的登录或退出.
- 做到在不同服务器中同时登录或退出.
- 做到一个用户能同时单点登录到不同的web服务器中.
解决方法:
由于本需求的php和jsp的sessionid各不相同,
因此采用浏览器cookie的机制,请求时把cookie里面的值发送到各自服务器;
即使把登录后的各自的sessionid先保存到cookie里,在下一次请求时再把cookie里的值一同请求包发送出去,供服务器识别该请求的用户是否已登录.
处理的难点:对两个服务器的请求能共享同一个cookie;请求jsp时,在jsp服务端同时请求php,并把请求的cookie值保存到jsp的cookie中,达到共享cookie值的目的:
示意图:
详细步骤:
- 客户端请求jsp服务器;
- jsp服务端请求php,把php返回的sessionid或cookie值增加到jsp的返回包中(注意设置好cookie的作用域和路径,前端浏览器共享cookie);
- 请求jsp或php时,共享的cookie将发送到相应的服务器;
- 被请求的服务器将根据cookie值判断该请求的用户是否已登录;
衍生问题:
- cookie的作用域不同时怎么共享cookie或怎么设置各自的cookie值?(比如:www.jsp.com 和 www.php.com怎么样共享或分别设置)
- 在Tomcat里面,前端cookie怎么样采用自己的sessionid的名字,而不采用默认的JSESSION=....................
|
|
|