当用户登陆服务器的的不同域名时可以用memcache服务器存储服务的session来解决用户的重复登陆问题
memcache的跨域登陆【单点登陆】
https://blog.csdn.net/kongdeqian1988/article/details/38434457
【1】php在用户登录时把session保存到一个共享的memcache服务器上:
1.session.save_handler = memcache
2.session.save_path = “tcp://192.168.20.1:10000”
【2】把session信息用数组的形式重新存储
S
E
S
S
I
O
N
[
′
u
s
e
r
n
a
m
e
′
]
=
_SESSION['username']=
SESSION[′username′]=row[‘username’];
S
E
S
S
I
O
N
[
′
u
s
e
r
i
d
′
]
=
_SESSION['user_id']=
SESSION[′userid′]=row[‘id’];
$mem=new Memcache;
$mem->connect("192.168.20.1","10000");
$mem->set(session_id().'_data',$_SESSION);
【3】跳转不同域名的时候通过地址栏传递session的信息
<?php $sname=session_name(); $sid=session_id(); echo " linux web服务器"; echo " windows web服务器"; ?>【4】把session设置到cookie中
if($_GET[session_name()]){
$mem=new Memcache;
$mem->connect(“192.168.20.1”,“10000”);
s
e
s
s
i
d
=
sessid=
sessid=_GET[session_name()];
S
E
S
S
I
O
N
=
_SESSION=
SESSION=mem->get(
s
e
s
s
i
d
.
d
′
a
t
a
′
)
;
s
e
t
c
o
o
k
i
e
(
s
e
s
s
i
o
n
n
a
m
e
(
)
,
sessid.'_data'); setcookie(session_name(),
sessid.d′ata′);setcookie(sessionname(),sessid,0,’/’);
}else{
session_start();
}