需求:
有三个个系统:
app1.inspur.com
app2.inspur.com
login.inspur.com
三个系统一级域名相同,想通过共享cookie和session来实现单点登录。
解决办法:
实现该功能,须满足两个条件:
1、客户端共享sessionId
2、服务器端共享session数据文件
条件一实现:
默认条件下,cookie的域是当前服务器的域名或者IP地址,上述三个系统二级域名不一样,默认配置下,是无法共享cookie的,我们可以通过修改默认配置,使上述三个系统的cookie都写到同一个域名下。
找到上述三个应用服务器的php.ini文件,将 session.cookie_domain = 的值设置为 .inspur.com ,即
session.cookie_domain = .inspur.com
条件二实现:
同样找到上述三个应用服务器的php.ini文件,修改 session.save_path 和 session.save_handler,php的session文件默认是存储在文件系统中的,为实现共享我们可以修改为数据库储存或者memcache缓存存储。
如:
session.save_path = "tcp://192.168.1.126:11211"
session.save_handler = memcache