UCenter实现同步登陆原理

1、用户登录discuz,通过logging.php文件中的函数uc_user_login对post过来的数据进行验证,也就是对username和password进行验证。

2、如果验证成功,将调用位于uc_client下client.php文件中的函数uc_user_synlogin,在这个函数中调用 uc_api_post('user', 'synlogin', array('uid'=>$uid))。

3、然后这个函数后向Ucenter的index.php传递数据,index.php接受传递的数据,获得model为user,action为synlogin的值。

4、然后Ucenter的index.php调用control目录下的user.php类中的onsynlogin方法,通过foreach循环,以javascript的方式通知uc应用列表中开启同步登陆的应用进行同步登录;即通过get方式传递给各个应用目录中api下的uc.php一些数据。

5、uc.php接收通知并处理get过来的数据,并在函数synlogin(位于uc.php中)通过函数_authcode加密数据(默认以UC_KEY作为密钥),用函数_setcookie设置cookie。

6、各个应用用对应的密钥解码上面设置的cookie,得到用户id等数据;通过这个值来判断用户是否经过其它应用登录过,从而让用户可以自动登陆。

应用程序的logging.php ------>uc_client中的client.php------>Ucenter------>应用程序中api/uc.php

      其实Ucenter实现同步登陆的原理就是cookie,一个应用登陆成功之后,向Ucenter传递数据,让Ucenter通知其他的应用也设置cookie,这样用户在访问其他应用的时候通过已经设置好的cookie实现自动登陆。了解了Ucenter的同步原理,再遇到无法同步登陆,或者开发一些与UCenter接口的时候就会容易很多。

转载于:https://blog.51cto.com/xuqin/1293551

UCenter实现同步登陆原理相关推荐

  1. php同步登陆方案,ucenter同步登陆机制_PHP教程

    做php开发的朋友大都知道有个ucenter可以用来实现多个站点同时登陆同时退出,用户同步的功能.下面作者将要就ucenter是如何实现同步登陆的和大家做一下分享. 首先站点都要引入一个uc_clie ...

  2. uc显示无服务器连接,ucenter安装心得和通信失败,同步登陆失败采坑以及解决方法...

    不墨迹,直接说重点:(配置了uc的网站不要再去采集了,否则uid不一致,新用户永远无法同步登录了) 下载系统后留意文件夹里是否带了uc的源码 api是接口文件夹,uc_client是uc的客户端文件, ...

  3. php 同步退出,Ucenter 的同步登录与同步退出

    Discuz论坛,包含了一个叫Ucenter的用户平台,通过这个平台,我们可以把Discuz论坛和Ucenter home.ecshop以及dedecms.帝国CMS等开源平台的用户统一起来,也可以自 ...

  4. 多DZ和UC同步登陆状态(支持HTTPS,PHP7.4.3)

    前端时间一个QQ上找到我的朋友求助在HTTPS下实现用户在多个DZ同步退出登陆状态,我摸索了一下 整理出了修改方法. 2020年3月16日更新: 本文发布一年了,最近有朋友反应使用最新版的DZ(Dis ...

  5. mysql 半同步复制_Mysql半同步复制原理及问题排查

    mysql半同步复制和异步复制的差别如上述架构图所示:在mysql异步复制的情况下,Mysql Master Server将自己的Binary Log通过复制线程传输出去以后,Mysql Master ...

  6. Alibaba Dubbo框架同步调用原理分析-1

    2019独角兽企业重金招聘Python工程师标准>>> 由于Dubbo底层采用Socket进行通信,自己对通信理理论也不是很清楚,所以顺便把通信的知识也学习一下. n  通信理论 计 ...

  7. synchronized实现同步的原理和锁状态

    参考自美团技术团队. 一.synchronized实现同步的原理 我们需要了解两个重要的概念:"Java对象头"."Monitor". 1.对象头 synchr ...

  8. ntp同步 mysql_解析Mysql 主从同步延迟原理及解决方案

    MySQL的主从同步是一个很成熟的架构,优点为:①在从服务器可以执行查询工作(即我们常说的读功能),降低主服务器压力;②在从主服务器进行备份,避免备份期间影响主服务器服务;③当主服务器出现问题时,可以 ...

  9. MySQL面试题中:主从同步的原理

    主从同步的原理: 1.主库上面有一个IO线程,从库上有一个IO线程和一个SQL线程,从库中的IO线程负责从主库读取binlog,并写入从库的中继日志:SQL线程负责读取并执行中继日志中的binlog, ...

最新文章

  1. Effective C++学习笔记(Part Five:Item 26-31)
  2. postgresql 删除触发器_PostgreSQL:我没有带闪,不讲武德
  3. 有哪些讽刺性极强的文案?
  4. 一线城市的繁荣vs年轻人的梦想?
  5. 图(graph)神经网络学习(四)--代码解析(Model_2)
  6. MT6573 android 系统默认语言处理流程
  7. 计组--CISC和RISC特点和区别
  8. GIS应用技巧之矢量数据编辑
  9. 微信php开发包,TP5专用微信sdk使用教程
  10. 室外管线lisp_AutoLISP语言在化工工艺室外管线设计中的应用
  11. 14. Setting Ta and RTO【设置Ta和RTO】
  12. 地球信息科学与技术类毕业论文文献有哪些?
  13. 运筹学基础知识学习计划
  14. linux下修复windows10引导,ubuntu下 修复win10引导
  15. linux有个很大的内存目录,Linux中的内存管理
  16. Python从入门到精通--课程目录
  17. eclipse取消默认工作空间的两种方法
  18. ubuntu版本Linux系统中安装jira
  19. 微信云开发AI短视频一键换脸小程序源码/带流量主
  20. Java基础加强重温_13:XML(可拓展标记语言)、XML语法、XML约束、XML解析(Dom4j,JAXP)、Dom4j基本使用、Xpath表达式(XML路径语言)、XML解析综合案例

热门文章

  1. 安装阴阳师出现错误“选择的驱动器或UNC共享不存在或不能访问“怎么解决?
  2. python3模块socket怎么安装_Python中socket模块的使用方法(一)
  3. java 顶层类_Javase之集合体系之(1)集合顶层类Collection与其迭代器知识
  4. ai模仿声音软件_如何开发人工智能类的软件?人工智能让我们的生活更加便捷!...
  5. 一万的阶乘c语言方法,求10000的阶乘(c语言代码实现)
  6. java8 虚拟机调优_Java虚拟机调优(八)-典型配置举例2
  7. Hadoop详解(十一):Yarn设计理念与基本架构
  8. 怎么实现事务_你可能知道事务的四大特性,但是不一定知道“事务的实现原理”...
  9. 详解IIS中URL重写工具的规则条件(Rule conditions)
  10. PHP -Casbin: 支持 ACL、RBAC、ABAC 多种模型的 PHP 权限管理框架