应用中调用函数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. Reason we use Camel

    Camel is mainly for integration purpose, in our project we also use it inside the single component t ...

  2. eclipse GIT使用

    新建工程(要和GIT上同名,同类型)->右键->team->add to index->commit->更新config文件->remote: fetch from ...

  3. PHP_Const

    PHP_Const 常量 规则: 1 总是大写 2 A-Z 及 从127-255的ASCII字符 3 全局范围 4 用define函数定义 5 只能包含标量数据 如Boolean integer fl ...

  4. DB other operation

    A prepared statement is a feature used to execute the same/similar SQL statement repeatedlly with hi ...

  5. IOS源码封装成.bundle和.a文件,以及加入xib的具体方法,翻遍网络,仅此一家完美翻译!! IOS7!!(3) 完美结局

    以上翻译有误解之处,现在简单做法如下: 经过深入研究,才感觉明白了内部机制,现在简单介绍于下,主要步骤:xcode5 创建库项目,删掉测试文件和默认创建的类,添加viewController类带xib ...

  6. iOS-MVC详解

    MVC与模板概念的理解 MVC(Model View Controller)模型-视图-控制器 MVC本来是存在于Deskt op程序中的,M是指数据模型,V是指用户界面,C则是控制器.使用MVC 的 ...

  7. Linked List Cycle II

    Given a linked list, return the node where the cycle begins. If there is no cycle, return null. Note ...

  8. Bandicam视频录制技巧总结+小丸工具箱压缩视频解决视频体积问题

    1.视频录制. 录制质量建议选择100,保证原文件的质量才能更好地保证渲染转码后输出视频的质量.音效这里就一个关键点,就是编码器默认的MPEG-1 L2,会导致会声会影渲染输出出错,程序强行关闭,Ve ...

  9. hexo git配置问题笔记

    本地安装hexo步骤 注意:本节教程只针对Windows用户,Linux和Mac用户请移步hexo安装. 安装Git 下载 msysgit 并执行即可完成安装. 安装Node.js 在 Windows ...

  10. 织梦dedecms模板调用标签大全-提高制作模板速度

    关键描述调用标签: ——————————————————————————–模板路径调用标签: {dede:field name=’templeturl’/}—————————————————————— ...