做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.phpernote.com/bbs登录后, 跳到www.phpernote.com/同样显示登录。因为bbs 和news系统在后台均已登录。

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

您可能感兴趣的文章如何去除dedeCMS后台登陆页面的广告

php Output Control 深入理解 ob_flush 和 flush 的区别

网站上多种url都能访问同样的内容是件危险的事

http请求中同步请求和异步请求的区别

js setInterval和setTimeout用法分析

CuteFTP连接ftp服务器时弹出“遇到无效的参数”错误的解决办法

PHP中跳出多重循环使用break,continue,goto,return,exit的用法和区别

mysql中tinyint、smallint、int和bigint类型的用法区别

http://www.bkjia.com/PHPjc/764139.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/764139.htmlTechArticle做php开发的朋友大都知道有个ucenter可以用来实现多个站点同时登陆同时退出,用户同步的功能。下面作者将要就ucenter是如何实现同步登陆...

php同步登陆方案,ucenter同步登陆机制_PHP教程相关推荐

  1. IM即时通讯-4-写扩散下的同步协议方案

    1. 背景信息 上篇提到了, IM协议层是主要解决会话和消息的同步, 在实现上, 以推模式为主, 拉模式为辅. 本文Agenda: (How)如何同步 (How)如何设计同步位点 (How)如何设计 ...

  2. linux100台服务器免密,多台Linux服务器之间互相免密登陆,脚本同步免密

    多台Linux服务器之间互相免密登陆,脚本同步免密 环境: 三台Linux 服务器 IP                          Release                        ...

  3. 帧同步与状态同步:方案比较

    状态同步:大型的MMOARPG ,比如魔兽世界 帧同步:网络条件好的局域网,比如魔兽争霸,优化过的MMRPG, 比如王者荣耀 相比之下状态同步适用型更广,特别适合复杂度高,延迟要求高,玩家多的游戏,例 ...

  4. php同步登录,使用ucenter实现多站点同步登录的讲解

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

  5. php ucenter原理,深入挖掘Discuz Ucenter同步登录过程原理分析

    深入挖掘discuz ucenter同步登录过程原理分析,哈哈,其实纯属标题党,主要就是做了一个思路分析而已. Discuz是Ucenter的一个应用. Ucenter包含Server和Client, ...

  6. JavaScript学习笔记(五)---cookie、Proxy、服务器、PHP语言、http协议、同步异步、事件轮循机制、ajax编写、接口

    JavaScript学习笔记(五)---cookie.Proxy.服务器.PHP语言.http协议.同步异步.事件轮循机制.ajax编写.接口 1.cookie 1.1cookie概念 1.2cook ...

  7. 浅谈RTS游戏网络同步:3种同步机制模式的实现

    RTS游戏有很多,可能大家比较熟悉的有Warcraft III (dota)和 StarCraft,早期西木的沙丘,红色警戒更是rts游戏的鼻祖,带给我们无限的欢乐和回忆.还有当下比较流行lol与do ...

  8. mysql 与 es 数据同步常见方案

    mysql 与 es 数据同步常见方案 说明 @author JellyfishMIX - github / blog.jellyfishmix.com LICENSE GPL-2.0 问题背景 最近 ...

  9. Linux与Windows之间实现文件实时同步的方案

    记linux与Windows之间实现文件实时同步的方案 近日,数据分析部提了个需求说要让一台linux的机器上的文件同步到一台Windows机器的某个目录下,由于本姑娘从来没有碰到过这种问题,于是上网 ...

最新文章

  1. AI录音笔一战成名!搜狗以语言AI为核心重点突破多点开花
  2. R语言as.numeric函数将因子变量(factor)转化为数值变量(Numeric)
  3. android6.0 sd卡卸载api,android6.0 用户关掉sd卡读取权限的情况下, 还能做到手机缓存么?...
  4. Numpy数据分析数值范围调整、计算
  5. 域名行业将带来高达98亿美元的巨大商机
  6. linux连同目录一起删除,linux中文件的常用操作
  7. MybatisPlus手写sql分页
  8. Unity 高级程序员应该具备怎样的能力?要怎样成长为 Unity 高级程序员?
  9. 采用系统API实现的二维码扫描、识别和生成
  10. 大写字母组成的等腰三角形
  11. 双活数据中心解决方案
  12. python distribute包管理工具安装AttributeError错误
  13. Android 自定义软键盘实现 数字九宫格
  14. 制作美联英语在线VIP页面----特色服务模块
  15. php图片上传功能,实时显示上传的图片
  16. 什么是dB、dBm、dBc?
  17. 强化学习—— 离散与连续动作空间(随机策略梯度与确定策略梯度)
  18. window子对象的详细介绍 _@jie
  19. 如何实现学生评语的导入
  20. 机器学习-泛化能力笔记

热门文章

  1. SSH概述与配置文件说明
  2. 微信小程序用户头像编辑上传
  3. cron表达式详解!!!!
  4. 270w+数据量级 | CnOpenData地方政府留言文本数据简介
  5. Unity - Timeline 之 Muting tracks(屏蔽轨道)
  6. Prometheus监控模板
  7. Windows下使用SSD检测
  8. ubuntu 下 ssd磁盘检测
  9. gcc for arm 工具链使用(一)
  10. 【mysql】图文展示Mysql锁