首页 >php教程 >php手册 >ucenter同步过程,详细解剖(同步登陆)

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

WBOY
WBOY原创
2016-06-06 20:09:262296浏览

今天讲的是?ucenter 同步多站点登陆功能. 同步登陆关键在?uc.php 中, 这个是连通 其他连接站点的关键逻辑层. 当我们执行登陆的时候, 用的是uc 中的?uc_user_login 判断, 接下来是这个?uc_user_synlogin 同步登入, 看文档说明 他会 输出一段 javascript的脚本

今天讲的是?ucenter 同步多站点登陆功能.

同步登陆关键在?uc.php 中, 这个是连通 其他连接站点的关键逻辑层.

当我们执行登陆的时候, 用的是uc 中的?uc_user_login 判断,

QQ图片20130517131736接下来是这个?uc_user_synlogin 同步登入, 看文档说明

QQ图片20130517131924他会 输出一段 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 做解释吧,

QQ图片20130517132454看到?$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 来判断 程序已经登陆.

到这里已经结束了. 如果不懂的.可以留言 与 我进行讨论. 谢谢大家的支持

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn