什么是單點(diǎn)登錄?單點(diǎn)登錄的三種實(shí)現(xiàn)方式?
發(fā)布時(shí)間:2025-08-18 | 來(lái)源:互聯(lián)網(wǎng)轉(zhuǎn)載和整理
什么是單點(diǎn)登錄?
單點(diǎn)登錄(Single Sign On),簡(jiǎn)稱為 SSO,是比較流行的企業(yè)業(yè)務(wù)整合的解決方案之一。SSO的定義是在多個(gè)應(yīng)用系統(tǒng)中,用戶只需要登錄一次就可以訪問(wèn)所有相互信任的應(yīng)用系統(tǒng)。
單點(diǎn)登錄的三種實(shí)現(xiàn)方式?
方式 1:通過(guò) session 進(jìn)行驗(yàn)證
session 稱為“會(huì)話”,session 對(duì)象存儲(chǔ)特定用戶會(huì)話所需的屬性及配置信息。簡(jiǎn)言之,session 就是服務(wù)器為了儲(chǔ)存用戶信息而創(chuàng)建的一個(gè)驗(yàn)證手段。用戶在登錄了一個(gè)系統(tǒng)后,服務(wù)器會(huì)將登錄信息儲(chǔ)存在一個(gè) session 中,產(chǎn)生 session ID,客戶端會(huì)保存該 ID;當(dāng)這個(gè)用戶再登錄其他系統(tǒng)時(shí),服務(wù)器會(huì)自動(dòng)復(fù)制上一個(gè)模塊的 session 該服務(wù)器的 session 中,以獲取用戶登錄信息,實(shí)現(xiàn)用戶只登錄一次,就可以登錄其他系統(tǒng)。在用戶退出登錄時(shí),服務(wù)器會(huì)自動(dòng)刪除 session。
整個(gè)過(guò)程均在服務(wù)器端完成,用戶實(shí)際使用時(shí)沒(méi)有感知。
方式 2:通過(guò) cookie 進(jìn)行驗(yàn)證
cookie 是某些網(wǎng)站為了辨別用戶身份,由服務(wù)端生成,發(fā)給客戶端暫時(shí)或永久保存的信息。簡(jiǎn)言之,cookie 就是一種存儲(chǔ)用戶數(shù)據(jù)的媒介。舉例來(lái)說(shuō),當(dāng)我們打開一個(gè)網(wǎng)站,比如新浪、CSDN、知乎時(shí),輸入用戶名和密碼登錄后系統(tǒng)會(huì)彈出是否保存 cookie,如果我們選擇保存,在下一次登錄時(shí),就不需要再次輸入用戶名和密碼,而是默認(rèn)登錄成功,直接進(jìn)入頁(yè)面。
方式 3:通過(guò) token 進(jìn)行驗(yàn)證
token 在身份認(rèn)證中是令牌的意思,在詞法分析中是標(biāo)記的意思。一般作為邀請(qǐng)、登錄系統(tǒng)使用。簡(jiǎn)言之,token 就是一種憑證,用戶在登錄注冊(cè)時(shí)需要獲取憑證,在經(jīng)過(guò)驗(yàn)證后,方可登錄相關(guān)被授權(quán)的應(yīng)用。
用戶在首次登錄系統(tǒng)時(shí)輸入賬號(hào)和密碼,服務(wù)器會(huì)收到登錄請(qǐng)求,然后驗(yàn)證是否正確;
服務(wù)器會(huì)根據(jù)用戶信息,如用戶 ID、用戶名、秘鑰、過(guò)期時(shí)間等信息生成一個(gè) token 簽名,然后發(fā)給用戶;
用戶驗(yàn)證成功后,返回 token;
前端服務(wù)器收到 token 后,存儲(chǔ)到 cookie 或 Local Storage 里;當(dāng)用戶再次登錄時(shí),會(huì)被服務(wù)器驗(yàn)證 token;
服務(wù)器收到用戶登錄請(qǐng)求后,對(duì) token 簽名進(jìn)行比對(duì):如果 token 驗(yàn)證正確,用戶登錄成功;如果 token 驗(yàn)證不正確,用戶登錄失敗,跳轉(zhuǎn)到登錄頁(yè)。