Heim  >  Artikel  >  php教程  >  ucenter同步过程,详细解剖(同步登陆)

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

WBOY
WBOYOriginal
2016-06-06 20:09:262252Durchsuche

今天讲的是?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 来判断 程序已经登陆.

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

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn