一、介紹
主站下有多個(gè)子系統(tǒng),每次登錄主系統(tǒng),跳轉(zhuǎn)到子系統(tǒng)時(shí),又需要重新登錄;
子系統(tǒng)與主系統(tǒng)都有各自的用戶信息表;各個(gè)系統(tǒng)的用戶角色、權(quán)限也各不相同;
二、目的
每次登錄主系統(tǒng),跳轉(zhuǎn)到子系統(tǒng)后,不用再重新輸入用戶名、密碼,進(jìn)行登錄;也就是“單點(diǎn)登錄”;
三、主要思路
(1)跨子域共享cookie(主站:www.A.com 子站:test.A.com →設(shè)置cookie的Domain=“.A.com” 就可以實(shí)現(xiàn)cookie共享)
(2)分布式session(暫未涉及,下班研究下~~)
四、具體實(shí)現(xiàn)
思路一(跨子域共享cookie):在任意一個(gè)系統(tǒng)登錄成功后,將用戶名保存到cookie中;當(dāng)用戶進(jìn)入其他系統(tǒng)時(shí),首先判斷cookie中的用戶名是否為空;如果為空,則跳轉(zhuǎn)到當(dāng)前系統(tǒng)的登錄頁(yè)面;不為空則根據(jù)用戶名,查詢出當(dāng)前系統(tǒng)的用戶信息,實(shí)現(xiàn)自動(dòng)登錄;
思路二(分布式session):創(chuàng)建單獨(dú)的用戶信息數(shù)據(jù)庫(kù),統(tǒng)一的登錄入口;在任意一個(gè)系統(tǒng)登錄成功后,將用戶的詳細(xì)信息存儲(chǔ)到session中;當(dāng)用戶進(jìn)去其他系統(tǒng)時(shí),首先判斷session中的用戶信息是否為空;如果為空,則跳轉(zhuǎn)到登錄頁(yè)面,登錄成功后再返回當(dāng)前頁(yè)面;如果不為空則顯示當(dāng)前頁(yè)面內(nèi)容;
----用戶信息數(shù)據(jù)庫(kù)表結(jié)構(gòu):系統(tǒng)分類(lèi)表、用戶基本信息表、角色類(lèi)型表、權(quán)限表、用戶角色表
->系統(tǒng)分類(lèi)表:系統(tǒng)編號(hào)、系統(tǒng)名稱(chēng)
->用戶基本信息表:用戶的基本字段~~
->角色類(lèi)型表:角色編號(hào)、角色名稱(chēng)、所屬系統(tǒng)編號(hào)
->權(quán)限表:用戶編號(hào)、系統(tǒng)編號(hào)、權(quán)限值
->用戶角色表:用戶編號(hào)、所屬角色編號(hào)
當(dāng)用戶再任一系統(tǒng)登錄時(shí),可以根據(jù)用戶名、密碼、系統(tǒng)編號(hào)得到當(dāng)前用戶的基本信息以及當(dāng)前系統(tǒng)的角色、權(quán)限信息等
------歡迎各位大神指點(diǎn),小弟不勝感激!
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注