|
本文實例講述了php出現(xiàn)web系統(tǒng)多域名登錄失敗的解決方法,分享給大家供大家參考。具體分析如下:
下面只是簡單的邏輯結(jié)構(gòu),對于正式的系統(tǒng)需要做具體的處理。
這里需要注意的是:加解密一定需要做安全驗證。但是這個方法也不夠完美,兩個站點必須有相同一級域名;另外這種完全基于cookie的方式,安全性不夠高
function login(){ $info = callloginserver(); //訪問登錄服務(wù)器 if(!empty($info)) //登錄成功了}//用戶沒有登錄,則在本系統(tǒng)中登錄并調(diào)用登錄服務(wù)器接口function login() //正常的登錄{ .......//驗證用戶的合法性 $_session['uid'] = $user_id; setcookie('sign', encrypt($pass9), '', '/', 'the.com');}
先檢查用戶是否在登錄系統(tǒng)中登錄
funtion sign(){ $sign = $_cookie['sign']; if(!empty($sign)) { $sign = decrypt($sign); ..........///登錄成功 }}
用戶沒有登錄,則在本系統(tǒng)中登錄并調(diào)用登錄服務(wù)器接口
function loging() //本系統(tǒng)登錄{ .....//登錄成功 callseverlogin();//通知用戶登錄}
所有的站點共享一個登錄系統(tǒng);當(dāng)用戶在其中的一個站點登錄成功時, 該系統(tǒng)調(diào)用其他站點的登錄接口,完成用戶在其他站點的登錄,同時設(shè)置相應(yīng)的登錄信息;或者在用戶登錄時,只在該系統(tǒng)保存用戶登錄信息,當(dāng)用戶在其他站點登錄時,必須請求該系統(tǒng)接口,獲取用戶是否登錄的信息。前一種方式的缺點是:不管用戶有沒有使用其他站點,那些站點都需要保存用戶狀態(tài);后一種方式就把所有的壓力都轉(zhuǎn)移到登錄系統(tǒng)上面來。而如果要實現(xiàn)用戶退出的統(tǒng)一操作,就需要站點調(diào)用登錄系統(tǒng)的退出接口,然后登錄系統(tǒng)接口調(diào)用其他站點的退出接口;或者設(shè)置一個標(biāo)記,如果這個標(biāo)記不存在則標(biāo)示用戶退出,此時只要把該標(biāo)示清空即可,其他站點發(fā)現(xiàn)該標(biāo)示不存在就知道用戶已經(jīng)退出系統(tǒng)。
這種處理方式需要在登錄系統(tǒng)和個站點之間規(guī)定登錄接口,和注銷接口。通過這些接口,各站點可以很方便的處理用戶登錄或退出。
希望本文所述對大家的php程序設(shè)計有所幫助。
php技術(shù):php出現(xiàn)web系統(tǒng)多域名登錄失敗的解決方法,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。