php 如何使用session 让同一服务器上的2个域名同时登录

2025-05-02 03:28:14
推荐回答(3个)
回答1:

其实这个真正的学名叫 sso[单点登录]


我画个原理图给你看吧,你应该容易理解



代码其实没什么,也不是关键,关键是你的思路,人家写的代码也很难嵌入到你的系统中去。。


实现的方法很多,看你怎么想。。。。

回答2:

可以做到session分发
/**
* 子站点分发方法,将用户信息和对应的秘钥发送到子站点
* 子站点必须有对应的方法
*/
public function distributeCheckLogin(){
//多个站点发送

foreach($this->urlMap as $key=>$val){
$data['userInfo'] = $_SESSION['userInfo'];
$data['key'] = md5($data['userInfo']['id'].'_'.$val['key']);
$json = base64_encode(json_encode($data));
//$val 相当于http://b.com
echo "";
}

}
这个方法放在b.com里面/Login/Oos/这个下面具体自己完善,我给的使我们这边的思路
public function checkLoginKey(){
$token = json_decode(base64_decode($_GET['token']),true);
if( md5($token['userInfo']['id'].'_'.$this->deploy['USER_KEY']) != $token['key']){
return false;
}
$_SESSION['userInfo'] = $token['userInfo'];
}

回答3:

session恐怕做不到
就是cookie也得在同一个域名之下