ucenter同步过程,详细解剖(同步登陆)
Jun 06, 2016 pm 08:09 PM今天讲的是?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同步过程,详细解剖(同步登陆), 感谢原作者分享。

인기 기사

인기 기사

뜨거운 기사 태그

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











PlayStation 네트워크 로그인에 실패했지만 인터넷 연결에 성공했습니다.

AADSTS7000112 수정, 애플리케이션이 비활성화됨 Microsoft 계정 로그인 오류

동기화한 폴더에 있는 하나 이상의 항목이 Outlook 오류와 일치하지 않습니다.

MySql 데이터 마이그레이션 및 동기화: 여러 서버 간에 MySQL 데이터 마이그레이션 및 동기화를 수행하는 방법

Wegame에서 너무 자주 로그인하는 문제를 해결하는 방법은 무엇입니까?
