欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

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

程序员文章站 2022-05-28 21:54:05
...

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

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

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

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

ucenter同步过程,详细解剖(同步登陆)接下来是这个?uc_user_synlogin 同步登入, 看文档说明

ucenter同步过程,详细解剖(同步登陆)他会 输出一段 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 做解释吧,

ucenter同步过程,详细解剖(同步登陆)看到?$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 来判断 程序已经登陆.

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