使用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读取XML文件的方法实例总结【DOMDocument及simplexml方法】

    PHP读取XML文件的方法实例总结【DOMDocument及simplexml方法】

    这篇文章主要介绍了PHP读取XML文件的方法,结合实例形式总结分析了php基于DOMDocument及simplexml方法针对xml文件的载入、读取等相关操作技巧,需要的朋友可以参考下
    2019-09-09
  • 初识php MVC

    初识php MVC

    MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。
    2014-09-09
  • 记录PHP错误日志 display_errors与log_errors的区别

    记录PHP错误日志 display_errors与log_errors的区别

    错误回显,一般常用语开发模式,但是很多应用在正式环境中也忘记了关闭此选项。错误回显可以暴露出非常多的敏感信息,为攻击者下一步攻击提供便利。推荐关闭此选项
    2012-10-10
  • PHP操作MongoDB实现增删改查功能【附php7操作MongoDB方法】

    PHP操作MongoDB实现增删改查功能【附php7操作MongoDB方法】

    这篇文章主要介绍了PHP操作MongoDB实现增删改查功能,结合实例形式总结分析了php操作MongoDB的常用技巧,并附带php7操作MongoDB方法,具有一定参考借鉴价值,需要的朋友可以参考下
    2018-04-04
  • redis+php实现微博(二)发布与关注功能详解

    redis+php实现微博(二)发布与关注功能详解

    这篇文章主要介绍了redis+php实现微博发布与关注功能,结合实例形式分析了php结合redis实现微博的发布及关注相关操作技巧,需要的朋友可以参考下
    2019-09-09
  • PHP实现的XML操作类【XML Library】

    PHP实现的XML操作类【XML Library】

    这篇文章主要介绍了PHP实现的XML操作类,涉及php针对数组、xml的转换、序列化、反序列化等相关操作技巧,需要的朋友可以参考下
    2016-12-12
  • PHP生成图片缩略图类示例

    PHP生成图片缩略图类示例

    这篇文章主要介绍了PHP生成图片缩略图类,可实现针对图形文件的属性获取、转换、文件生成等功能,非常简便实用,需要的朋友可以参考下
    2017-01-01
  • PHP开发框架laravel安装与配置教程

    PHP开发框架laravel安装与配置教程

    Laravel是一套简洁、优雅的PHP Web开发框架,本文将详细介绍Laravel如何进行配置
    2015-03-03
  • php压缩文件夹最新版

    php压缩文件夹最新版

    这篇文章主要为大家详细介绍了php压缩文件夹的最新版代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-07-07
  • PHP封装函数实现生成随机的字符串验证码

    PHP封装函数实现生成随机的字符串验证码

    这篇文章主要介绍了利用PHP封装函数实现生成随机的字符串验证码的相关资料,文中给出了详细的介绍的示例代码,对大家具有一定的参考价值,有需要的朋友们可以一起来学习学习。
    2017-01-01

最新评论