其实这个真正的学名叫 sso[单点登录]
我画个原理图给你看吧,你应该容易理解
代码其实没什么,也不是关键,关键是你的思路,人家写的代码也很难嵌入到你的系统中去。。
实现的方法很多,看你怎么想。。。。
可以做到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'];
}
session恐怕做不到
就是cookie也得在同一个域名之下