下面只是简单的逻辑结构,对于正式的系统须要作具体的处理。php
这里须要注意的是:加解密必定须要作安全验证。可是这个方法也不够完美,两个站点必须有相同一级域名;另外这种彻底基于cookie的方式,安全性不够高安全
function login()
{
$info = callloginserver(); //访问登陆服务器
if(!empty($info)) //登陆成功了
}
//用户没有登陆,则在本系统中登陆并调用登陆服务器接口服务器
function login() //正常的登陆
{
.......//验证用户的合法性
$_session['uid'] = $user_id;
setcookie('sign', encrypt($pass9), '', '/', 'the.com');
}
先检查用户是否在登陆系统中登陆
funtion sign()
{
$sign = $_cookie['sign'];
if(!empty($sign))
{
$sign = decrypt($sign)(www.111cn.net);
..........///登陆成功
}
}
用户没有登陆,则在本系统中登陆并调用登陆服务器接口cookie
function loging() //本系统登陆
{
.....//登陆成功
callseverlogin();//通知用户登陆session
}ui
全部的站点共享一个登陆系统;当用户在其中的一个站点登陆成功时, 该系统调用其余站点的登陆接口,完成用户在其余站点的登陆,同时设置相应的登陆信息;或者在用户登陆时,只在该系统保存用户登陆信息,当用户在其余站点登陆时,必须请求该系统接口,获取用户是否登陆的信息。前一种方式的缺点是:无论用户有没有使用其余站点,那些站点都须要保存用户状态;后一种方式就把全部的压力都转移到登陆系统上面来。而若是要实现用户退出的统一操做,就须要站点调用登陆系统的退出接口,而后登陆系统接口调用其余站点的退出接口;或者设置一个标记,若是这个标记不存在则标示用户退出,此时只要把该标示清空便可,其余站点发现该标示不存在就知道用户已经退出系统。.net
这种处理方式须要在登陆系统和个站点之间规定登陆接口,和注销接口。经过这些接口,个站点能够很方便的处理用户登陆或退出:
from:http://www.111cn.net/phper/php-gj/37194.htmserver