php出現(xiàn)web系統(tǒng)多域名登錄失敗的解決方法
本文實(shí)例講述了php出現(xiàn)web系統(tǒng)多域名登錄失敗的解決方法,分享給大家供大家參考。具體分析如下:
下面只是簡(jiǎn)單的邏輯結(jié)構(gòu),對(duì)于正式的系統(tǒng)需要做具體的處理。
這里需要注意的是:加解密一定需要做安全驗(yàn)證。但是這個(gè)方法也不夠完美,兩個(gè)站點(diǎn)必須有相同一級(jí)域名;另外這種完全基于cookie的方式,安全性不夠高
function login() { $info = callloginserver(); //訪問(wèn)登錄服務(wù)器 if(!empty($info)) //登錄成功了 } //用戶沒(méi)有登錄,則在本系統(tǒng)中登錄并調(diào)用登錄服務(wù)器接口 function login() //正常的登錄 { .......//驗(yàn)證用戶的合法性 $_session['uid'] = $user_id; setcookie('sign', encrypt($pass9), '', '/', 'the.com'); }
先檢查用戶是否在登錄系統(tǒng)中登錄
funtion sign() { $sign = $_cookie['sign']; if(!empty($sign)) { $sign = decrypt($sign); ..........///登錄成功 } }
用戶沒(méi)有登錄,則在本系統(tǒng)中登錄并調(diào)用登錄服務(wù)器接口
function loging() //本系統(tǒng)登錄 { .....//登錄成功 callseverlogin();//通知用戶登錄 }
所有的站點(diǎn)共享一個(gè)登錄系統(tǒng);當(dāng)用戶在其中的一個(gè)站點(diǎn)登錄成功時(shí), 該系統(tǒng)調(diào)用其他站點(diǎn)的登錄接口,完成用戶在其他站點(diǎn)的登錄,同時(shí)設(shè)置相應(yīng)的登錄信息;或者在用戶登錄時(shí),只在該系統(tǒng)保存用戶登錄信息,當(dāng)用戶在其他站點(diǎn)登錄時(shí),必須請(qǐng)求該系統(tǒng)接口,獲取用戶是否登錄的信息。前一種方式的缺點(diǎn)是:不管用戶有沒(méi)有使用其他站點(diǎn),那些站點(diǎn)都需要保存用戶狀態(tài);后一種方式就把所有的壓力都轉(zhuǎn)移到登錄系統(tǒng)上面來(lái)。而如果要實(shí)現(xiàn)用戶退出的統(tǒng)一操作,就需要站點(diǎn)調(diào)用登錄系統(tǒng)的退出接口,然后登錄系統(tǒng)接口調(diào)用其他站點(diǎn)的退出接口;或者設(shè)置一個(gè)標(biāo)記,如果這個(gè)標(biāo)記不存在則標(biāo)示用戶退出,此時(shí)只要把該標(biāo)示清空即可,其他站點(diǎn)發(fā)現(xiàn)該標(biāo)示不存在就知道用戶已經(jīng)退出系統(tǒng)。
這種處理方式需要在登錄系統(tǒng)和個(gè)站點(diǎn)之間規(guī)定登錄接口,和注銷接口。通過(guò)這些接口,各站點(diǎn)可以很方便的處理用戶登錄或退出。
希望本文所述對(duì)大家的PHP程序設(shè)計(jì)有所幫助。
相關(guān)文章
PHP自定義函數(shù)實(shí)現(xiàn)格式化秒的方法
這篇文章主要介紹了PHP自定義函數(shù)實(shí)現(xiàn)格式化秒的方法,涉及php數(shù)組及數(shù)值運(yùn)算的操作技巧,需要的朋友可以參考下2016-09-09php通過(guò)array_shift()函數(shù)移除數(shù)組第一個(gè)元素的方法
這篇文章主要介紹了php通過(guò)array_shift()函數(shù)移除數(shù)組第一個(gè)元素的方法,涉及php中array_shift()函數(shù)操作數(shù)組的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03PHP中auto_prepend_file與auto_append_file用法實(shí)例分析
這篇文章主要介紹了PHP中auto_prepend_file與auto_append_file用法,較為詳細(xì)的講述了配置信息的休息以及函數(shù)的用法和注意事項(xiàng),需要的朋友可以參考下2014-09-09PHP中的閉包function()?use()?{}使用場(chǎng)景和技巧
由于存在函數(shù)內(nèi)部不能訪問(wèn)全局作用的,所以就需要一種可以引入上一級(jí)作用域的語(yǔ)法結(jié)構(gòu),可以通過(guò)use使用函數(shù)聲明時(shí)所在作用域的變量的值。php的閉包可能不常用,但是在某些場(chǎng)合之下還是可以考慮用php的閉包來(lái)實(shí)現(xiàn)某些功能的。2022-12-12Session保存到數(shù)據(jù)庫(kù)的php類分享
Session保存到數(shù)據(jù)庫(kù)的php類,需要的朋友可以參考下。2011-10-10PHP得到mssql的存儲(chǔ)過(guò)程的輸出參數(shù)功能實(shí)現(xiàn)
在開(kāi)發(fā)過(guò)程中可能會(huì)遇到無(wú)法取得MSSQL存儲(chǔ)過(guò)程的輸出參數(shù),很多朋友都不知道該怎么辦,本文將詳細(xì)介紹PHP得到mssql的存儲(chǔ)過(guò)程的輸出參數(shù)功能實(shí)現(xiàn)2012-11-11PHP基于redis計(jì)數(shù)器類定義與用法示例
這篇文章主要介紹了PHP基于redis計(jì)數(shù)器類定義與用法,結(jié)合實(shí)例形式較為詳細(xì)的分析了php定義的redis計(jì)數(shù)器類及其相關(guān)使用技巧,需要的朋友可以參考下2018-02-02