ucenter 通信原理个人总结
用户登陆discuz,调用on_login() , on_login ()里调用了userlogin() 验证用户信息,正确的话,调用uc_user_synlogin(),然后调用uc_api_post('user', 'synlogin', array('uid'=>$uid)),向uc_server/index.php 传输数据,model为user,action为synlogin,然后调用uc_server/control/user.php 里的onsynlogin方法,通过foreach循环,以javascript的方式通知uc应用列表中开启同步登陆的应用进行同步登录;discuz自身的ucenter通信到此结束;
discuz外的应用api/uc.php接收通知并处理get过来的数据,并在函数synlogin(位于uc.php中)通过函数authcode加密数据,用函数wp_set_auth_cookie设置cookie。各个应用用对应的密钥解码上面设置的cookie,得到用户id等数据;通过这个值来判断用户是否经过其它应用登录过,从而让用户可以自动登陆。
discuz:
用户登陆
-> /member.php
-> /source/module/member/member_logging.php
-> /source/class/class_member.php(on_login )
-> /uc_client/client.php(uc_user_synlogin
-> uc_api_post('user', 'synlogin', array('uid'=>$uid)) )
-> uc_server/index.php
-> uc_server/control/user.php(onsynlogin)
-> 以javascript 方式通知uc应用列表中开启同步登陆的应用进行同步登录
wordpress:
get方式接受ucenter传过来的数据
-> /wp-content/plugins/ucenter-integration/api/uc.php (synlogin)
-> 通过函数authcode加密数据,用函数wp_set_auth_cookie设置cookie
-> 各个应用用对应的密钥解码上面设置的cookie,得到用户id等数据;通过这个值来判断用户是否经过其它应用登录过,从而让用户可以自动登陆。
ucenter 通信原理个人总结的更多相关文章
- UCenter通信原理
https://www.jb51.net/article/59666.htm 1.用户登录discuz,通过logging.php文件中的函数uc_user_login对post过来的数据进行验证,也 ...
- ucenter 通信原理
1.用户登录discuz,通过logging.php文件中的函数uc_user_login对post过来的数据进行验证,也就是对username和password进行验证. 2.如果验证成功,将调用位 ...
- 基于web的IM软件通信原理分析
关于IM(InstantMessaging)即时通信类软件(如微信,QQ),大多数都是桌面应用程序或者native应用较为流行,而网上关于原生IM或桌面IM软件类的通信原理介绍也较多,此处不再赘述.而 ...
- Socket 通信原理(Android客户端和服务器以TCP&&UDP方式互通)
转载地址:http://blog.csdn.net/mad1989/article/details/9147661 ZERO.前言 有关通信原理内容是在网上或百科整理得到,代码部分为本人所写,如果不当 ...
- SSL 通信原理及Tomcat SSL 配置
SSL 通信原理及Tomcat SSL 双向配置 目录1 参考资料 .................................................................. ...
- Java 下 SSL 通信原理及实例
有关SSL的原理和介绍在网上已经有不少,对于Java下使用keytool生成证书,配置SSL通信的教程也非常多.但如果我们不能够亲自动手做一个SSL Sever和SSL Client,可能就永远也不能 ...
- AIDL通信原理
AIDL (Android Interface Definition Language),通过定义通信接口来实现进程间通信.这是Google提供的一种在安卓应用进程间通信的工具.所以要了解AIDL的通 ...
- Java基础知识强化之网络编程笔记02:Socket通信原理图解
1. Socket (1)Socket套接字 网络上具有唯一标识的IP地址和端口号组合在一起才能构成唯一能识别的标识符套接字 (2)Socket原理机制: • 通信两端都有Socket. • 网 ...
- Python Socket通信原理
[Python之旅]第五篇(一):Python Socket通信原理 python Socket 通信理论 socket例子 摘要: 只要和网络服务涉及的,就离不开Socket以及Socket编 ...
随机推荐
- VS2012 利用正则统计项目代码行数
原文:VS2012 利用正则统计项目代码行数 #开头和/开头或者空行都不计入代码量, 搜索出来以后最后一行就是代码行数了:
- go官网教程A Tour of Go
http://tour.golang.org/#1 中文版:http://go-tour-cn.appsp0t.com/#4 package main import ( "fmt" ...
- 哈希集合——hashSet
/** 哈希集合特点:存取顺序不确定,同一个哈希值的位置可以存放多个元素, 哈希集合存放元素的时候是先判断哈希地址值:hashCode()是否相同,如果不同 ...
- HDU_1430——魔板,预处理,康托展开,置换,string类的+操作
Problem Description 在魔方风靡全球之后不久,Rubik先生发明了它的简化版——魔板.魔板由8个同样大小的方块组成,每个方块颜色均不相同,可用数字1-8分别表示.任一时刻魔板的状态可 ...
- HTTP学习笔记3-响应结构
HTTP响应: 13,在接收和解释请求消息后,服务器会返回一个HTTP响应消息. 14,与HTTP请求类似,HTTP响应也是由三个部分组成,分别是:状态行.消息报头.响应正文. 15,状态行由协议版本 ...
- javascript基础笔记学习
/** * Created by Administrator on 2016/12/26. */ /* var box; alert( typeof box); box是Undefined类型,值是u ...
- BaseAdapter的ArrayIndexOutOfBoundsException
最近写一个listView中多个listItem布局时,convertView缓存及使用,类似微信的聊天界面的listView,报了一个异常: 11-25 15:51:49.076: E/InputE ...
- 建立企业内部mavenserver并使用Android Studio公布公共项目
由于Android Studio使用了Gradle构建工具,在library依赖的处理上是将被依赖的library作为一个module引入(拥有一份完整的library拷贝),而Eclipse的ADT ...
- WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!错误
删除 awZ sm01]# vim .ssh/known_hosts 中不能登录主机的相关信息.
- linux 网络状态工具ss命令
ss命令用于显示socket状态. 他可以显示PACKET sockets, TCP sockets, UDP sockets, DCCP sockets, RAW sockets, Unix dom ...