您好,欢迎访问一九零五行业门户网

ucenter同步过程,详细解剖(同步登陆)

今天讲的是?ucenter 同步多站点登陆功能. 同步登陆关键在?uc.php 中, 这个是连通 其他连接站点的关键逻辑层. 当我们执行登陆的时候, 用的是uc 中的?uc_user_login 判断, 接下来是这个?uc_user_synlogin 同步登入, 看文档说明 他会 输出一段 javascript的脚本
今天讲的是?ucenter 同步多站点登陆功能.
同步登陆关键在?uc.php 中, 这个是连通 其他连接站点的关键逻辑层.
当我们执行登陆的时候, 用的是uc 中的?uc_user_login 判断,
接下来是这个?uc_user_synlogin 同步登入, 看文档说明
他会 输出一段 javascript的脚本, 其实是 一段url请求, 目的是通知其他程序, 他登陆了. 在这里其实是 进入了 程序的 uc,php 中处理了.
javascript脚本中内容:?http://192.168.1.20/discuz/api/uc.php?time=1368767786&code=18e7mtc5tmblwuafna4k%2f1usoxjqws3%2bnszeoedm8y6vwc3b9epcf1rpre0jml4olcce%2fjcmpmmq8wyfbmrqdvzhxdcm%2bvp5v0dmr%2bpljeb3npgdznt417ucq2glq3aay94ecqdz6otkptgwk2nmooqr2a2mgfeqlfcnog1d
所以我们在 uc.php写同步登陆过程: 取 ucenter文件夹中的?examples 做解释吧,
看到?$action == ‘synlogin’ 时候进入这里, ?通过 $get 来获取他 传递过来的 uid, username, password 等数据, 然后修改成. 你的程序 登陆条件. 比如设置cookie, 能判断他已经登陆的条件 就行了.
例子:
/** * 同步登陆 */ function synlogin($get, $post) { $uid = $get['uid']; $username = $get['username']; if(!api_synlogin) { return api_return_forbidden; } header('p3p: cp=cura adma deva psao psdo our bus uni pur int dem sta pre com nav otc noi dsp cor'); $encode = _authcode($uid.\t.$username, 'encode'); _setcookie('ucenter_auth', $encode); //setcookie('ucenter_auth', $encode); //$_cookie['ucenter_auth'] = $encode; return api_return_succeed; }
我这边是这样写的. 通过 cookie: ?ucenter_auth 来判断 程序已经登陆.
到这里已经结束了. 如果不懂的.可以留言 与 我进行讨论. 谢谢大家的支持
原文地址:ucenter同步过程,详细解剖(同步登陆), 感谢原作者分享。
其它类似信息

推荐信息