Heim >Backend-Entwicklung >PHP-Tutorial >php web系统多域名登录失败解决方法_PHP教程

php web系统多域名登录失败解决方法_PHP教程

WBOY
WBOYOriginal
2016-07-20 11:09:19885Durchsuche

下面只是简单的逻辑结构,对于正式的系统需要做具体的处理。


这里需要注意的是:加解密一定需要做安全验证。但是这个方法也不够完美,两个站点必须有相同一级域名;另外这种完全基于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);
    ..........///登录成功
  }
}

用户没有登录,则在本系统中登录并调用登录服务器接口

function loging()  //本系统登录
{
  .....//登录成功
  callseverlogin();//通知用户登录

}

所有的站点共享一个登录系统;当用户在其中的一个站点登录成功时, 该系统调用其他站点的登录接口,完成用户在其他站点的登录,同时设置相应的登录信息;或者在用户登录时,只在该系统保存用户登录信息,当用户在其他站点登录时,必须请求该系统接口,获取用户是否登录的信息。前一种方式的缺点是:不管用户有没有使用其他站点,那些站点都需要保存用户状态;后一种方式就把所有的压力都转移到登录系统上面来。而如果要实现用户退出的统一操作,就需要站点调用登录系统的退出接口,然后登录系统接口调用其他站点的退出接口;或者设置一个标记,如果这个标记不存在则标示用户退出,此时只要把该标示清空即可,其他站点发现该标示不存在就知道用户已经退出系统。

这种处理方式需要在登录系统和个站点之间规定登录接口,和注销接口。通过这些接口,个站点可以很方便的处理用户登录或退出:

 


www.bkjia.comtruehttp://www.bkjia.com/PHPjc/444806.htmlTechArticle下面只是简单的逻辑结构,对于正式的系统需要做具体的处理。 这里需要注意的是:加解密一定需要做安全验证。但是这个方法也不够完美...
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn