1、用戶登錄discuz,通過logging.php文件中的函數uc_user_login對post過來的數據進行驗證,也就是對username和password進行驗證.
2、如果驗證成功,將調用位于uc_client下client.php文件中的函數uc_user_synlogin,在這個函數中調用 uc_api_post('user','synlogin', array('uid'=>$uid)).
3、然后這個函數后向Ucenter的index.php傳遞數據,index.php接受傳遞的數據,獲得model為user,action為synlogin的值.
4、然后Ucenter的index.php調用control目錄下的user.php類中的onsynlogin方法,通過foreach循環,以 javascript的方式通知uc應用列表中開啟同步登陸的應用進行同步登錄,即通過get方式傳遞給各個應用目錄中api下的uc.php一些數據.
5、uc.php接收通知并處理get過來的數據,并在函數synlogin(位于uc.php中)通過函數_authcode加密數據(默認以UC_KEY作為密鑰),用函數_setcookie設置cookie.
6、各個應用用對應的密鑰解碼上面設置的cookie,得到用戶id等數據,通過這個值來判斷用戶是否經過其它應用登錄過,從而讓用戶可以自動登陸.
新聞熱點
疑難解答