- 背景
在使用百度腦圖時(shí),我使用了百度賬號(hào)進(jìn)行登錄,登錄成功后發(fā)現(xiàn)沒(méi)有數(shù)據(jù),發(fā)現(xiàn)賬號(hào)錯(cuò)了,然后進(jìn)入百度中心退出賬號(hào)重新登錄,然后刷新百度腦圖的頁(yè)面,發(fā)現(xiàn)賬號(hào)依然是之前的賬號(hào)。這是什么原因? - 登錄流程
這里的登錄方式就是sso(單點(diǎn)登錄),簡(jiǎn)單描述下系統(tǒng)間的交互過(guò)程。
image.png
該過(guò)程是沒(méi)問(wèn)題的,但是百度中心退出賬號(hào)后,百度腦圖還在線,并且百度中心登錄另一個(gè)賬號(hào)后,同樣百度的系統(tǒng)下存在2個(gè)賬號(hào),用戶體驗(yàn)不是很好。 - 思考優(yōu)化點(diǎn)
可以發(fā)現(xiàn),整個(gè)問(wèn)題在于百度中心退出后,子系統(tǒng)百度腦圖卻沒(méi)退出,所以這里需要增加處理,在百度中心退出時(shí),退出已經(jīng)登錄的子系統(tǒng)。
這里就需要進(jìn)行子系統(tǒng)登錄記錄,以便推出時(shí)回查。 這個(gè)地方可以建立一個(gè)表記錄登錄關(guān)系:
| user_id | login_status | sub_system | logout_url |
|---|---|---|---|
| 1 | 1 | naotu | naotu/logout |
-
退出流程
在百度中心退出時(shí),檢查已經(jīng)登錄的子系統(tǒng),進(jìn)行/logout_url調(diào)用,通知子系統(tǒng)進(jìn)行退出處理(session失效)。這些動(dòng)作可以通過(guò)異步完成。
image.png 總結(jié)
sso系統(tǒng)的內(nèi)容其實(shí)還有多種多樣的實(shí)現(xiàn),平時(shí)使用百度腦圖比較多, 突然發(fā)現(xiàn)了這個(gè)很明顯的問(wèn)題,簡(jiǎn)單記錄下。

