php web系統多域名登陸失敗解決方法

下面只是簡單的邏輯結構,對於正式的系統須要作具體的處理。php


這裏須要注意的是:加解密必定須要作安全驗證。可是這個方法也不夠完美,兩個站點必須有相同一級域名;另外這種徹底基於cookie的方式,安全性不夠高安全

 

function login()
{
$info = callloginserver(); //訪問登陸服務器
if(!empty($info)) //登陸成功了
}
//用戶沒有登陸,則在本系統中登陸並調用登陸服務器接口服務器

function login() //正常的登陸
{
.......//驗證用戶的合法性
$_session['uid'] = $user_id;
setcookie('sign', encrypt($pass9), '', '/', 'the.com');
}
先檢查用戶是否在登陸系統中登陸
funtion sign()
{
$sign = $_cookie['sign'];
if(!empty($sign))
{
$sign = decrypt($sign)(www.111cn.net);
..........///登陸成功
}
}
用戶沒有登陸,則在本系統中登陸並調用登陸服務器接口cookie

function loging() //本系統登陸
{
.....//登陸成功
callseverlogin();//通知用戶登陸session

}ui

全部的站點共享一個登陸系統;當用戶在其中的一個站點登陸成功時, 該系統調用其餘站點的登陸接口,完成用戶在其餘站點的登陸,同時設置相應的登陸信息;或者在用戶登陸時,只在該系統保存用戶登陸信息,當用戶在其餘站點登陸時,必須請求該系統接口,獲取用戶是否登陸的信息。前一種方式的缺點是:無論用戶有沒有使用其餘站點,那些站點都須要保存用戶狀態;後一種方式就把全部的壓力都轉移到登陸系統上面來。而若是要實現用戶退出的統一操做,就須要站點調用登陸系統的退出接口,而後登陸系統接口調用其餘站點的退出接口;或者設置一個標記,若是這個標記不存在則標示用戶退出,此時只要把該標示清空便可,其餘站點發現該標示不存在就知道用戶已經退出系統。.net

這種處理方式須要在登陸系統和個站點之間規定登陸接口,和註銷接口。經過這些接口,個站點能夠很方便的處理用戶登陸或退出:
from:http://www.111cn.net/phper/php-gj/37194.htmserver

相關文章
相關標籤/搜索