欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

單點(diǎn)登錄的實(shí)現(xiàn)方式有哪些

Linux愛(ài)好者 ? 來(lái)源:Linux愛(ài)好者 ? 作者:張永恒 ? 2021-02-02 14:00 ? 次閱讀

前言

實(shí)現(xiàn)方式一:父域 Cookie

實(shí)現(xiàn)方式二:認(rèn)證中心

實(shí)現(xiàn)方式三:LocalStorage 跨域

補(bǔ)充:域名分級(jí)

前言

在 B/S 系統(tǒng)中,登錄功能通常都是基于 Cookie 來(lái)實(shí)現(xiàn)的。當(dāng)用戶(hù)登錄成功后,一般會(huì)將登錄狀態(tài)記錄到 Session 中,或者是給用戶(hù)簽發(fā)一個(gè) Token,無(wú)論哪一種方式,都需要在客戶(hù)端保存一些信息(Session ID 或 Token ),并要求客戶(hù)端在之后的每次請(qǐng)求中攜帶它們。

在這樣的場(chǎng)景下,使用 Cookie 無(wú)疑是最方便的,因此我們一般都會(huì)將 Session 的 ID 或 Token 保存到 Cookie 中,當(dāng)服務(wù)端收到請(qǐng)求后,通過(guò)驗(yàn)證 Cookie 中的信息來(lái)判斷用戶(hù)是否登錄 。

單點(diǎn)登錄(Single Sign On, SSO)是指在同一帳號(hào)平臺(tái)下的多個(gè)應(yīng)用系統(tǒng)中,用戶(hù)只需登錄一次,即可訪(fǎng)問(wèn)所有相互信任的應(yīng)用系統(tǒng)。

舉例來(lái)說(shuō),百度貼吧和百度地圖是百度公司旗下的兩個(gè)不同的應(yīng)用系統(tǒng),如果用戶(hù)在百度貼吧登錄過(guò)之后,當(dāng)他訪(fǎng)問(wèn)百度地圖時(shí)無(wú)需再次登錄,那么就說(shuō)明百度貼吧和百度地圖之間實(shí)現(xiàn)了單點(diǎn)登錄。

單點(diǎn)登錄的本質(zhì)就是在多個(gè)應(yīng)用系統(tǒng)中共享登錄狀態(tài)。如果用戶(hù)的登錄狀態(tài)是記錄在 Session 中的,要實(shí)現(xiàn)共享登錄狀態(tài),就要先共享 Session,比如可以將 Session 序列化到 Redis 中,讓多個(gè)應(yīng)用系統(tǒng)共享同一個(gè) Redis,直接讀取 Redis 來(lái)獲取 Session。

當(dāng)然僅此是不夠的,因?yàn)椴煌膽?yīng)用系統(tǒng)有著不同的域名,盡管 Session 共享了,但是由于 Session ID 是往往保存在瀏覽器 Cookie 中的,因此存在作用域的限制,無(wú)法跨域名傳遞,也就是說(shuō)當(dāng)用戶(hù)在 app1.com 中登錄后,Session ID 僅在瀏覽器訪(fǎng)問(wèn) app1.com 時(shí)才會(huì)自動(dòng)在請(qǐng)求頭中攜帶,而當(dāng)瀏覽器訪(fǎng)問(wèn) app2.com 時(shí),Session ID 是不會(huì)被帶過(guò)去的。實(shí)現(xiàn)單點(diǎn)登錄的關(guān)鍵在于,如何讓 Session ID(或 Token)在多個(gè)域中共享。

實(shí)現(xiàn)方式一:父域 Cookie

在將具體實(shí)現(xiàn)之前,我們先來(lái)聊一聊 Cookie 的作用域。

Cookie 的作用域由 domain 屬性和 path 屬性共同決定。domain 屬性的有效值為當(dāng)前域或其父域的域名/IP地址,在 Tomcat 中,domain 屬性默認(rèn)為當(dāng)前域的域名/IP地址。path 屬性的有效值是以“/”開(kāi)頭的路徑,在 Tomcat 中,path 屬性默認(rèn)為當(dāng)前 Web 應(yīng)用的上下文路徑。

如果將 Cookie 的 domain 屬性設(shè)置為當(dāng)前域的父域,那么就認(rèn)為它是父域 Cookie。Cookie 有一個(gè)特點(diǎn),即父域中的 Cookie 被子域所共享,換言之,子域會(huì)自動(dòng)繼承父域中的Cookie。

利用 Cookie 的這個(gè)特點(diǎn),不難想到,將 Session ID(或 Token)保存到父域中不就行了。沒(méi)錯(cuò),我們只需要將 Cookie 的 domain 屬性設(shè)置為父域的域名(主域名),同時(shí)將 Cookie 的 path 屬性設(shè)置為根路徑,這樣所有的子域應(yīng)用就都可以訪(fǎng)問(wèn)到這個(gè) Cookie 了。

不過(guò)這要求應(yīng)用系統(tǒng)的域名需建立在一個(gè)共同的主域名之下,如 tieba.baidu.com 和 map.baidu.com,它們都建立在 baidu.com 這個(gè)主域名之下,那么它們就可以通過(guò)這種方式來(lái)實(shí)現(xiàn)單點(diǎn)登錄。

總結(jié):此種實(shí)現(xiàn)方式比較簡(jiǎn)單,但不支持跨主域名。

實(shí)現(xiàn)方式二:認(rèn)證中心

我們可以部署一個(gè)認(rèn)證中心,認(rèn)證中心就是一個(gè)專(zhuān)門(mén)負(fù)責(zé)處理登錄請(qǐng)求的獨(dú)立的 Web 服務(wù)。

用戶(hù)統(tǒng)一在認(rèn)證中心進(jìn)行登錄,登錄成功后,認(rèn)證中心記錄用戶(hù)的登錄狀態(tài),并將 Token 寫(xiě)入 Cookie。(注意這個(gè) Cookie 是認(rèn)證中心的,應(yīng)用系統(tǒng)是訪(fǎng)問(wèn)不到的。)

應(yīng)用系統(tǒng)檢查當(dāng)前請(qǐng)求有沒(méi)有 Token,如果沒(méi)有,說(shuō)明用戶(hù)在當(dāng)前系統(tǒng)中尚未登錄,那么就將頁(yè)面跳轉(zhuǎn)至認(rèn)證中心。由于這個(gè)操作會(huì)將認(rèn)證中心的 Cookie 自動(dòng)帶過(guò)去,因此,認(rèn)證中心能夠根據(jù) Cookie 知道用戶(hù)是否已經(jīng)登錄過(guò)了。

如果認(rèn)證中心發(fā)現(xiàn)用戶(hù)尚未登錄,則返回登錄頁(yè)面,等待用戶(hù)登錄,如果發(fā)現(xiàn)用戶(hù)已經(jīng)登錄過(guò)了,就不會(huì)讓用戶(hù)再次登錄了,而是會(huì)跳轉(zhuǎn)回目標(biāo) URL ,并在跳轉(zhuǎn)前生成一個(gè) Token,拼接在目標(biāo) URL 的后面,回傳給目標(biāo)應(yīng)用系統(tǒng)。

應(yīng)用系統(tǒng)拿到 Token 之后,還需要向認(rèn)證中心確認(rèn)下 Token 的合法性,防止用戶(hù)偽造。確認(rèn)無(wú)誤后,應(yīng)用系統(tǒng)記錄用戶(hù)的登錄狀態(tài),并將 Token 寫(xiě)入 Cookie,然后給本次訪(fǎng)問(wèn)放行。(注意這個(gè) Cookie 是當(dāng)前應(yīng)用系統(tǒng)的,其他應(yīng)用系統(tǒng)是訪(fǎng)問(wèn)不到的。)當(dāng)用戶(hù)再次訪(fǎng)問(wèn)當(dāng)前應(yīng)用系統(tǒng)時(shí),就會(huì)自動(dòng)帶上這個(gè) Token,應(yīng)用系統(tǒng)驗(yàn)證 Token 發(fā)現(xiàn)用戶(hù)已登錄,于是就不會(huì)有認(rèn)證中心什么事了。

這里順便介紹兩款認(rèn)證中心的開(kāi)源實(shí)現(xiàn):

Apereo CAS 是一個(gè)企業(yè)級(jí)單點(diǎn)登錄系統(tǒng),其中 CAS 的意思是”Central Authentication Service“。它最初是耶魯大學(xué)實(shí)驗(yàn)室的項(xiàng)目,后來(lái)轉(zhuǎn)讓給了 JASIG 組織,項(xiàng)目更名為 JASIG CAS,后來(lái)該組織并入了Apereo 基金會(huì),項(xiàng)目也隨之更名為 Apereo CAS。

XXL-SSO 是一個(gè)簡(jiǎn)易的單點(diǎn)登錄系統(tǒng),由大眾點(diǎn)評(píng)工程師許雪里個(gè)人開(kāi)發(fā),代碼比較簡(jiǎn)單,沒(méi)有做安全控制,因而不推薦直接應(yīng)用在項(xiàng)目中,這里列出來(lái)僅供參考。

總結(jié):此種實(shí)現(xiàn)方式相對(duì)復(fù)雜,支持跨域,擴(kuò)展性好,是單點(diǎn)登錄的標(biāo)準(zhǔn)做法。

實(shí)現(xiàn)方式三:LocalStorage 跨域

前面,我們說(shuō)實(shí)現(xiàn)單點(diǎn)登錄的關(guān)鍵在于,如何讓 Session ID(或 Token)在多個(gè)域中共享。

父域 Cookie 確實(shí)是一種不錯(cuò)的解決方案,但是不支持跨域。那么有沒(méi)有什么奇淫技巧能夠讓 Cookie 跨域傳遞呢?

很遺憾,瀏覽器對(duì) Cookie 的跨域限制越來(lái)越嚴(yán)格。Chrome 瀏覽器還給 Cookie 新增了一個(gè) SameSite 屬性,此舉幾乎禁止了一切跨域請(qǐng)求的 Cookie 傳遞(超鏈接除外),并且只有當(dāng)使用 HTTPs 協(xié)議時(shí),才有可能被允許在 AJAX 跨域請(qǐng)求中接受服務(wù)器傳來(lái)的 Cookie。

不過(guò),在前后端分離的情況下,完全可以不使用 Cookie,我們可以選擇將 Session ID (或 Token )保存到瀏覽器的 LocalStorage 中,讓前端在每次向后端發(fā)送請(qǐng)求時(shí),主動(dòng)將 LocalStorage 的數(shù)據(jù)傳遞給服務(wù)端。這些都是由前端來(lái)控制的,后端需要做的僅僅是在用戶(hù)登錄成功后,將 Session ID (或 Token )放在響應(yīng)體中傳遞給前端。

在這樣的場(chǎng)景下,單點(diǎn)登錄完全可以在前端實(shí)現(xiàn)。前端拿到 Session ID (或 Token )后,除了將它寫(xiě)入自己的 LocalStorage 中之外,還可以通過(guò)特殊手段將它寫(xiě)入多個(gè)其他域下的 LocalStorage 中。

關(guān)鍵代碼如下:

pIYBAGAY6qSAOlmYAACeeFqnF0Q316.jpg

前端通過(guò) iframe+postMessage() 方式,將同一份 Token 寫(xiě)入到了多個(gè)域下的 LocalStorage 中,前端每次在向后端發(fā)送請(qǐng)求之前,都會(huì)主動(dòng)從 LocalStorage 中讀取 Token 并在請(qǐng)求中攜帶,這樣就實(shí)現(xiàn)了同一份 Token 被多個(gè)域所共享。

總結(jié):此種實(shí)現(xiàn)方式完全由前端控制,幾乎不需要后端參與,同樣支持跨域。

補(bǔ)充:域名分級(jí)

從專(zhuān)業(yè)的角度來(lái)說(shuō)(根據(jù)《計(jì)算機(jī)網(wǎng)絡(luò)》中的定義),.com、.cn 為一級(jí)域名(也稱(chēng)頂級(jí)域名),.com.cn、baidu.com 為二級(jí)域名,sina.com.cn、tieba.baidu.com 為三級(jí)域名,以此類(lèi)推,N 級(jí)域名就是 N-1 級(jí)域名的直接子域名。

從使用者的角度來(lái)說(shuō),一般把可支持獨(dú)立備案的主域名稱(chēng)作一級(jí)域名,如 baidu.com、sina.com.cn 皆可稱(chēng)作一級(jí)域名,在主域名下建立的直接子域名稱(chēng)作二級(jí)域名,如 tieba.baidu.com 為二級(jí)域名。

為了避免歧義,本人將使用“主域名“替代”一級(jí)域名“的說(shuō)法。

責(zé)任編輯:xj

原文標(biāo)題:?jiǎn)吸c(diǎn)登錄的三種實(shí)現(xiàn)方式

文章出處:【微信公眾號(hào):Linux愛(ài)好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 域名
    +關(guān)注

    關(guān)注

    0

    文章

    74

    瀏覽量

    11353
  • Cookie
    +關(guān)注

    關(guān)注

    0

    文章

    30

    瀏覽量

    10432

原文標(biāo)題:?jiǎn)吸c(diǎn)登錄的三種實(shí)現(xiàn)方式

文章出處:【微信號(hào):LinuxHub,微信公眾號(hào):Linux愛(ài)好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    deepseek登錄不了怎么辦?

    建議先檢查網(wǎng)絡(luò)連接,確認(rèn)賬號(hào)密碼正確,嘗試清除緩存或切換設(shè)備登錄。若仍失敗,可訪(fǎng)問(wèn)官方狀態(tài)頁(yè)查看服務(wù)公告,或聯(lián)系客服協(xié)助解決。
    的頭像 發(fā)表于 02-07 09:42 ?246次閱讀

    如何遠(yuǎn)程登錄路由器

    當(dāng)路由器放置在機(jī)房、弱電箱等不方便直接操作的位置,或當(dāng)網(wǎng)絡(luò)出現(xiàn)故障或者需要遠(yuǎn)程協(xié)助時(shí)遠(yuǎn)程登錄路由器可以極大的解決問(wèn),本期重點(diǎn)說(shuō)明遠(yuǎn)程登錄路由器的方法,供各位參考使用: 首先 ,需要確保家里的路由器
    的頭像 發(fā)表于 12-18 12:01 ?221次閱讀
    如何遠(yuǎn)程<b class='flag-5'>登錄</b>路由器

    AD9814如何與AGND和DGND連接?分別單點(diǎn)接地嗎?

    模擬和數(shù)字管腳,將芯片人為的分為AGND和DGND,在芯片的bottom層或者遠(yuǎn)端加一個(gè)0歐電阻單點(diǎn)接地. 哪種分地更合理呢?上面那段話(huà)的single強(qiáng)調(diào)的是“同一個(gè)”還是“單獨(dú)的”呢?有些ADC手冊(cè)不提分地(circuit and layout),管腳模擬地和數(shù)字地的
    發(fā)表于 12-05 06:33

    單點(diǎn)位移計(jì):從原理到應(yīng)用,一文讀懂!

    與廣泛應(yīng)用吧!什么是單點(diǎn)位移計(jì)簡(jiǎn)單來(lái)說(shuō),單點(diǎn)位移計(jì)是一種用于測(cè)量物體沿某一特定方向上微小移動(dòng)距離的高精度傳感器。它通過(guò)將物理位移轉(zhuǎn)換為電信號(hào),從而實(shí)現(xiàn)對(duì)位移的精確監(jiān)
    的頭像 發(fā)表于 11-25 15:54 ?328次閱讀
    <b class='flag-5'>單點(diǎn)</b>位移計(jì):從原理到應(yīng)用,一文讀懂!

    功放地和數(shù)字地應(yīng)采用哪種方式?

    1、功放地和數(shù)字地應(yīng)采用哪種方式2、本人在電路設(shè)計(jì)中采用了單點(diǎn)接地方式,發(fā)現(xiàn)音箱時(shí)而有聲,時(shí)而無(wú)聲。經(jīng)測(cè)試發(fā)現(xiàn)功放在工作時(shí),數(shù)字地和功放地之間很大的脈沖電壓。請(qǐng)問(wèn)這種脈沖電壓干擾是
    發(fā)表于 10-25 09:17

    多點(diǎn)觸控和單點(diǎn)觸控哪個(gè)好

    多點(diǎn)觸控和單點(diǎn)觸控各有其優(yōu)缺點(diǎn),具體哪個(gè)更好取決于應(yīng)用場(chǎng)景和用戶(hù)需求。以下是對(duì)兩者的詳細(xì)比較:
    的頭像 發(fā)表于 10-21 15:36 ?752次閱讀

    多點(diǎn)觸控和單點(diǎn)觸控區(qū)別

     多點(diǎn)觸控和單點(diǎn)觸控是觸摸屏技術(shù)的兩種主要類(lèi)型,它們?cè)诠δ?、?yīng)用場(chǎng)景以及用戶(hù)體驗(yàn)等方面存在顯著差異。以下是對(duì)這兩種觸控技術(shù)的詳細(xì)比較:
    的頭像 發(fā)表于 10-21 15:35 ?1661次閱讀

    交換機(jī)如何配置SSH遠(yuǎn)程登錄

    從事網(wǎng)絡(luò)運(yùn)維工作的小伙伴們都知道,在交換機(jī)正式上線(xiàn)時(shí),必須完成配置SSH遠(yuǎn)程登錄,這樣做目的是為了日后,維護(hù)方便,不需要每次登錄設(shè)備都要跑到機(jī)房,這樣既不現(xiàn)實(shí),又費(fèi)事。
    的頭像 發(fā)表于 10-10 14:33 ?1370次閱讀
    交換機(jī)如何配置SSH遠(yuǎn)程<b class='flag-5'>登錄</b>

    阻容耦合方式的優(yōu)點(diǎn)哪些

    利用電阻和電容元件實(shí)現(xiàn)信號(hào)傳輸?shù)?b class='flag-5'>方式。在阻容耦合電路中,信號(hào)通過(guò)電阻元件傳輸,而電容元件則起到耦合信號(hào)的作用。阻容耦合方式的基本電路結(jié)構(gòu)包括輸入電阻、耦合電容、輸出電阻和負(fù)載電容。 阻容耦合
    的頭像 發(fā)表于 08-09 15:32 ?1127次閱讀

    Jtti:如何在服務(wù)器擴(kuò)展時(shí)避免單點(diǎn)故障?哪些常見(jiàn)的高可用性策略?

    服務(wù)器擴(kuò)展是組織應(yīng)對(duì)不斷增長(zhǎng)的業(yè)務(wù)需求和數(shù)據(jù)負(fù)載的重要手段。然而,隨之而來(lái)的卻是更大規(guī)模的風(fēng)險(xiǎn),存在單點(diǎn)故障可能導(dǎo)致整個(gè)系統(tǒng)的宕機(jī),嚴(yán)重影響業(yè)務(wù)連續(xù)性和用戶(hù)體驗(yàn)。 避免單點(diǎn)故障的策略 冗余備份 在
    的頭像 發(fā)表于 07-18 16:02 ?296次閱讀

    wds的常用組網(wǎng)哪幾種?

    (Point-to-Point)模式 點(diǎn)對(duì)點(diǎn)模式是WDS中最常用的一種組網(wǎng)方式,主要用于實(shí)現(xiàn)兩個(gè)或多個(gè)無(wú)線(xiàn)設(shè)備之間的直接通信。在這種模式下,兩個(gè)無(wú)線(xiàn)設(shè)備之間建立一個(gè)無(wú)線(xiàn)鏈路,實(shí)現(xiàn)數(shù)據(jù)的傳輸。這種模式適用于兩個(gè)無(wú)線(xiàn)設(shè)備之間的距離較
    的頭像 發(fā)表于 07-18 09:52 ?1355次閱讀

    控制閥哪幾種控制方式

    控制閥是工業(yè)自動(dòng)化系統(tǒng)中的重要組成部分,其主要作用是控制流體的流量、壓力、溫度等參數(shù),以滿(mǎn)足生產(chǎn)過(guò)程的需要。控制閥的控制方式很多種,不同的控制方式適用于不同的應(yīng)用場(chǎng)景。本文將詳細(xì)介紹控制閥的幾種
    的頭像 發(fā)表于 06-30 09:51 ?1052次閱讀

    蘋(píng)果將推“密碼”應(yīng)用,簡(jiǎn)化用戶(hù)登錄體驗(yàn)

    近日,媒體報(bào)道援引內(nèi)部知情人士的消息稱(chēng),科技巨頭蘋(píng)果公司正計(jì)劃在下周推出一款名為“密碼”的自制新應(yīng)用,此舉意在為用戶(hù)登錄網(wǎng)站和軟件提供更便捷的方式。據(jù)悉,這款新應(yīng)用將作為即將發(fā)布的iOS 18
    的頭像 發(fā)表于 06-11 09:29 ?538次閱讀

    java實(shí)現(xiàn)多線(xiàn)程的幾種方式

    Java實(shí)現(xiàn)多線(xiàn)程的幾種方式 多線(xiàn)程是指程序中包含了兩個(gè)或以上的線(xiàn)程,每個(gè)線(xiàn)程都可以并行執(zhí)行不同的任務(wù)或操作。Java中的多線(xiàn)程可以提高程序的效率和性能,使得程序可以同時(shí)處理多個(gè)任務(wù)。 Java提供
    的頭像 發(fā)表于 03-14 16:55 ?793次閱讀

    信道均衡哪些實(shí)現(xiàn)方式?

    信道均衡的實(shí)現(xiàn)方式主要包括線(xiàn)性自動(dòng)應(yīng)均衡、盲均衡和半盲均衡等。這些方法各有特點(diǎn),選擇哪種方法取決于具體的應(yīng)用場(chǎng)景和性能要求。例如,如果信道變化較快,可能需要使用自適應(yīng)濾波器來(lái)實(shí)現(xiàn)實(shí)時(shí)的信道均衡。而在信道特性較為穩(wěn)定的環(huán)境中,線(xiàn)性
    的頭像 發(fā)表于 03-02 14:05 ?1498次閱讀