应用中调用函数us_user_synlogin并输出

echo uc_user_synlogin($uid);

解析:

1. 该函数位于client.PHP

2. 作用实质上是调用ucenter user模块的onsynlogin动作(该动作位于ucenter/control/user.php中)

onsynlogin首先会根据uc_user_synlogin传过来的uid获取用户的数据,然后获取当前所有允许异步登录的应用的配置信息

最终将生成几个<script src="app_uc_php_url?param"></script>这样的代码返回给uc_user_synlogin

app_uc_php_url:每个应用中的uc.php的地址

param:使用应用的authkey作为密钥加密过的用户信息以及将要调用的位于uc.php中的syslogin动作名

3. 这些script标签会作为uc_user_synlogin的返回值返回然后被输出

4. 输出时script标签的src将会被执行,即uc.php中的syslogin动作会执行(注意:每个应用中的uc.php的syslogin此时都将依次被执行,因为每个应用都有对应的script标签输出)

5. 每个应用的syslogin动作获得参数都是一致的,统一都为用户信息,但对这些信息的处理是可以不一致的,比如a应用可以将用户的ID和密码使用自身的authkey当做密钥加密后存储到cookie,而b应用则可以选择将用户的ID和用户名存储到cookie

6. 因为每个应用存储到cookie中的信息可能不同,且使用了自身的authkey加密,所以只有应用自身可以解码这段数据,其他应用即使可以获取这段数据也是无法解码的

7. 所以要实现账号在a应用登录后,在b账号也可以同步登录,那么b应用就应该首先获取自身uc.php的synlogin被调用后生成的cookie信息,然后使用自身的authkey解码,取出存储的信息,放到当前应用的session中,表示该用户已经登录.....

done

from:http://blog.csdn.net/w6611415/article/details/8933010

【转】 Ucenter同步登录原理解析的更多相关文章

  1. UCENTER同步登录工作原理和配置要点

    ucenter的同步登录原理: 1)Ucenter是和uc_client同步的.每个PHP应用,加入了UCENTER后,都会在主目录下有个UC_CLIENT目录.这个目录里,都有一个client.PH ...

  2. ucenter 同步登录总结

    部署: discuz默认安装后就安装了uc_server应用 各应用根目录必须有uc_client文件夹. 下载ucenter程序查看范例程序 应用管理中,应用的主 URL必须指向到应用的根目录,应用 ...

  3. CAS单点登录原理解析

    转自: https://www.cnblogs.com/lihuidu/p/6495247.html 1.基于Cookie的单点登录的回顾        基于Cookie的单点登录核心原理: 将用户名 ...

  4. CAS单点登录原理解析(转载)

    1.基于Cookie的单点登录的回顾        基于Cookie的单点登录核心原理: 将用户名密码加密之后存于Cookie中,之后访问网站时在过滤器(filter)中校验用户权限,如果没有权限则从 ...

  5. ucenter 整合同步登录的内部实现原理及thinkphp整合ucenter

    1.用户登录discuz,通过logging.php文件中的函数uc_user_login对post过来的数据进行验证,也就是对username和password进行验证.2.如果验证成功,将调用位于 ...

  6. ucenter 整合同步登录的内部实现原理

    1.用户登录discuz,通过logging.php文件中的函数uc_user_login对post过来的数据进行验证,也就是对username和password进行验证. 2.如果验证成功,将调用位 ...

  7. 简单分析ucenter 会员同步登录通信原理

    1.用户登录discuz,通过logging.php文件中的函数uc_user_login对post过来的数据进行验证,也就是对username和password进行验证. 2.如果验证成功,将调用位 ...

  8. Discuz x3 UCenter实现同步登陆原理

    1.Discuz x3 的登录页面URL是:/member.php?mod=logging&action=login 2.这个登录页面,登录提交的地址是: <form method=&q ...

  9. ucenter通信实现同步登录、同步退出(详细)

    首先,需要去官网下载一个ucenter的包.然后解压下来. 先把ucenter/ucenter这个文件夹复制到你的项目根目录下改名为uc_server;(这里只是我建议修改,以便于我下面写的配置); ...

随机推荐

  1. Java 集合深入理解(10):Deque 双端队列

    点击查看 Java 集合框架深入理解 系列, - ( ゜- ゜)つロ 乾杯~ 什么是 Deque Deque 是 Double ended queue (双端队列) 的缩写,读音和 deck 一样,蛋 ...

  2. Java 集合深入理解(4):List<E> 接口

    点击查看 Java 集合框架深入理解 系列, - ( ゜- ゜)つロ 乾杯~ 蓝瘦!香菇! 连着加班几天,醉了.学学 List 放松下! 在 Java 集合深入理解:Collection 中我们熟悉了 ...

  3. PHP oracle分页

    oracle分页 function getall($query, $start=0, $rows=-1) { $this->dbh = oci_connect('aaa','mmm'," ...

  4. Condition的await-signal流程详解(转)

    上一篇文章梳理了condtion,其中侧重流程,网上看到这篇文章文章介绍的很细.值得学习.特意转载过来.   转载请注明出处:http://blog.csdn.net/luonanqin 转载路径:h ...

  5. Spring 框架获取 datasource对象的方法

    1,使用org.springframework.jdbc.datasource.DriverManagerDataSource  2.使用org.apache.commons.dbcp.BasicDa ...

  6. 357. Count Numbers with Unique Digits

    Given a non-negative integer n, count all numbers with unique digits, x, where 0 ≤ x < 10n. Examp ...

  7. CSS控制文本自动换行

    1.你定死表格的宽度,即给表格一个宽度值(是数值,不是百分比) 2.强制不换行 div{ //white-space:不换行;normal 默认;nowrap强制在同一行内显示所有文本,直到文本结束或 ...

  8. python 文件编码

    错误:UnicodeDecodeError: 'gbk' codec can't decode byte 原因:文件为utf-8编码,系统却用gbk去解码,必然出现错误. 解决方法: with ope ...

  9. 机器翻译 2010年NOIP全国联赛提高组

    题目描述 Description 小晨的电脑上安装了一个机器翻译软件,他经常用这个软件来翻译英语文章. 这个翻译软件的原理很简单,它只是从头到尾,依次将每个英文单词用对应的中文含义 来替换.对于每个英 ...

  10. 那些盒模型在IE6中的BUG们,工程狮的你可曾遇到过?

    HTML5学堂 那些盒模型在IE6中的BUG们,工程狮的你可曾遇到过? IE6已经渐渐的开始退出浏览器的历史舞台.虽然当年IE6作为微软的一款利器击败网景,但之后也因为版本的持续不更新而被火狐和谷歌三 ...