子系統(tǒng)間用戶登錄權(quán)限驗(yàn)證

????????隨著業(yè)務(wù)的發(fā)展,各公司一般都會(huì)有很多個(gè)子系統(tǒng)。我們拿百度舉例,有百度云盤(pán),百度文庫(kù),百度貼吧、百度地圖、百度外賣(mài)等等。

? ? ? ? 為了避免使用各個(gè)子系統(tǒng)時(shí)需要多次登錄,一般都會(huì)從公司層面做一個(gè)統(tǒng)一的用戶系統(tǒng),用來(lái)負(fù)責(zé)用戶的注冊(cè)和登錄(我們稱之為passport)。

? ? ? ? 一個(gè)簡(jiǎn)單的實(shí)現(xiàn)方式就是所有的子產(chǎn)品都從統(tǒng)一的passport處登錄,passport寫(xiě)下權(quán)限(比如cookie權(quán)限),各個(gè)子系統(tǒng)都認(rèn)這個(gè)權(quán)限。cookie權(quán)限可以寫(xiě)下uid/logintime/vc(驗(yàn)證字符串)等。vc做一個(gè)加密規(guī)則比如UID+key+時(shí)間等。然后把加密規(guī)則告訴子系統(tǒng),子系統(tǒng)驗(yàn)證cookie的有效性。這樣就實(shí)現(xiàn)了各系統(tǒng)的統(tǒng)一登錄。當(dāng)然如果覺(jué)得這種對(duì)稱加密有安全隱患(各系統(tǒng)可以按照規(guī)則自行偽造cookie)的話,可以在服務(wù)端采用rsa簽名的方式,然后告訴子系統(tǒng)驗(yàn)證簽名的publickey,這樣可以保證子系統(tǒng)不可偽造登錄cookie。rsa雖然性能損壞較大,但是根據(jù)本機(jī)測(cè)試一萬(wàn)次驗(yàn)證需要500ms,完全可以滿足大部分系統(tǒng)的性能要求。


? ??

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容