原理簡介:
依賴兩點:authcode()函數和P3P協議
兩種模式,mysql模式,http模式(即socket鏈接)
http模式下,同步登陸流程如下:
web1 用client.php中的uc_user_login()去ucenter驗證登陸,完成后-----》調用uc_user_synlogin()--->uc_api_post()發送到ucenter下control/user.php的onsynlogin()接口--->返回 <script src=“”></script>字符串(如下同步登陸參數)----->通過web1將<script>顯示在頁面上------>從而,調用其他web的uc.php接口,例:"http://web2/api/uc.php?time......---->web2/3下的api/uc.php被調用--->在各自域名下寫入cookie(參數從解析code=獲得)。 此時刷新web2頁面------>初始化時讀取cookie並解密------>獲取uid並用client.php去ucenter獲取詳細信息。
code里面包含的參數可以在ucenter下control下user.php里面自定義,最好把password去掉,或者搞個假的。
同步登陸:<script type="text/javascript" src="http://web2/api/uc.php?time=1400039728&code=044bj0Z8Ik2ICL9%2BcsfTlSzG8g76vhwOBE%2BaSYsS2h6OL%2FPHstpaxG6OTWhzo4tOowKIe3wbwBsrzIMAbA" reload="1" ></script>
<script type="text/javascript" src="http://web3/api/uc.php?time=1400039728&code=0df9Y3rHuTyypP316DaB128t5rJJYaDrfzht2URojjaffo21rBuD2nYUtYpdy%2FXzo1WwTEGLX0PEOU%2F%2BoA" reload="1" ></script>
備注要點:
1、在web2、web3等各自應用里的uc_client/control、model 在http模式下是沒有用的,但在mysql鏈接模式下,是有效的。
2、web2/3 下的 uc_client/date/cache下的apps.php文件,在mysql模式下才會生成。
3、ucenter/data/cache下的apps.php文件,只有在web2/3使用http模式下,才會更新。
做的關系圖,哈哈~
相關鏈接:
http://www.360doc.com/content/10/1027/10/2952237_64372584.shtml //講的有點亂