使用ucenter实现多站点同步登录的讲解

 更新时间:2019年03月21日 14:26:08   作者:CODETC  
今天小编就为大家分享一篇关于使用ucenter实现多站点同步登录的讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

做Web开发经常会要求实现多站点同步登录的情况,对于PHP开发来说,我们可以使用ucenter来实现多个站点同时登陆同时退出,用户同步的功能。下面我们一起看一下ucenter是如何实现同步登陆的。

首先站点都要引入一个uc_client这样一个客户端,以登陆为例,登陆时首先会调用一个外部函数,uc_client/client.php下的uc_user_login检查是否存在此用户,如果正确则继续执行登陆代码,检测此用户过程:通过用户是以什么方式连的uc(mysql还是http post)然后去相应地用不同函数来检测用户,检测完成后实现本地登陆,代码自己写,然后让其他应用程序也登陆,此时调用外部函数uc_user_synlogin,过程如下:

Uc_user_synlogin调用uc_api_post来实现是要做哪个模块,比如现在就是user模块,传的参数是user_id,具体这是怎么实现的没再仔细看,总之是将数据发送到uc_api即你的ucenter地址的index.php,同时附一些参数,根据这些参数然后再去读里面所有可通信的应用程序,让他们也实现登陆,这是其他程序的事儿了。

通知其他应用程序主要是通过ucenter,去向各应用程序下的api/uc.php发送一些数据,这些数据由uc.php接到请求然后去执行相应的登陆操作等。

下面举个例子描述一下整个过程

1.用户xxx在某一应用程序的login.php,输入用户名,密码。先用uc_user_login函数到uc server验证此用户和密码,如正确,则写入session,写入cookies,并更新应用程序会员表中的登录ip,登录时间。用户感觉不到这个过程。

2.然后通过uc_user_synlogin通知uc server 用户xxx登录成功,这个过程可能使用ajax,用户感觉不到通知过程。

3.uc server收到这个消息后,马上命令手下,把xxx登录的消息,像令牌环一样,发给所有愿意接收(后台中那个是否开启同步登录)这个消息的其它应用程序。其实就是带参数访问一下各应用程序的uc.php,用户感觉不到这个过程。

4.各应用程序靠api下的uc.php来接收uc server发来的消息,并对uc server言听计从,让干什么就干什么。现在,收到让xxx用户在你的程序中登录的命令,马上执行。并写本应用程序的session,并且使用p3p, 写入相同域或不同域的cookies.  用户感觉不到这个过程。

5.最后所有和uc整合的程序,xxx均登录成功。用户从www.jb51.net登录后, 跳到www.jb51.net同样显示登录。

6.应用程序与uc server的会话结束。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

相关文章

  • PHP中if和or运行效率对比

    PHP中if和or运行效率对比

    这篇文章主要介绍了PHP中if和or运行效率对比,有助于深入了解PHP程序中相近语句的效率对比,对于编写高质量的PHP程序有一定的参考借鉴价值,需要的朋友可以参考下
    2014-12-12
  • PHP简单实现多维数组合并与排序功能示例

    PHP简单实现多维数组合并与排序功能示例

    这篇文章主要介绍了PHP简单实现多维数组合并与排序功能,涉及php数组合并、排序等相关操作及array_merge、array_multisort等函数使用技巧,需要的朋友可以参考下
    2017-09-09
  • PHP中echo,print_r与var_dump区别分析

    PHP中echo,print_r与var_dump区别分析

    这篇文章主要介绍了PHP中echo,print_r与var_dump区别分析,主要讲述了三者的类型本质及其操作数据类型的用法区别,非常具有实用价值,需要的朋友可以参考下
    2014-09-09
  • PHP利用ueditor实现上传图片添加水印

    PHP利用ueditor实现上传图片添加水印

    在上传图片时,有时需要添加水印。如果每个都用PS添加的话,会有些麻烦。本文将为大家介绍PHP如何利用ueditor实现上传图片添加水印,感兴趣的可以了解一下
    2022-07-07
  • PHP @ at 记号的作用示例介绍

    PHP @ at 记号的作用示例介绍

    @符号一直不知道是什么意思,其实它是错误控制符,即即使出现错误,也无视出现的错误信息,继续执行下边的代码
    2014-10-10
  • PHP判断密码强度的方法详解

    PHP判断密码强度的方法详解

    这篇文章主要介绍了PHP判断密码强度的方法,涉及php正则判断、ajax交互及页面元素动态操作相关实现技巧,需要的朋友可以参考下
    2017-05-05
  • php实现将Session写入数据库

    php实现将Session写入数据库

    这篇文章主要介绍了php实现将Session写入数据库的相关资料,需要的朋友可以参考下
    2015-07-07
  • PHP syntax error, unexpected $end 错误的一种原因及解决

    PHP syntax error, unexpected $end 错误的一种原因及解决

    PHP 遇到 syntax error, unexpected $end 错误时,查错思路其实还是看看文件里 PHP 的开始标记和结束标记是否配对,还要额外注意注释里是否出现过 ?> 哟。
    2008-10-10
  • PHP中for与foreach的区别分析

    PHP中for与foreach的区别分析

    foreach 仅能用于数组,当试图将其用于其它数据类型或者一个未初始化的变量时会产生错误,在PHP5中也能遍历对象。
    2011-03-03
  • php中把对象转换为数组几种简单巧妙的方法

    php中把对象转换为数组几种简单巧妙的方法

    在PHP中,对象是一种复杂的数据类型,它可以包含多个属性和方法,有时候我们需要将对象转换为数组进行操作,比如将对象存储到数据库中,或者将对象转换为JSON格式等情况,对象转数组不能用递归实现转换,本文几种简单巧妙的方法
    2023-09-09

最新评论