【開發必備】單點登入,清除了cookie,頁面還保持登入狀態?

李同學的教室發表於2022-12-01

背景

本地搭建了一臺認證伺服器、兩臺資源伺服器,看看請求的過程

開始

沒登入,直接請求資源伺服器,結果跳轉到的登入頁面
image

登入後,請求了認證伺服器的登入介面,然後一頓重定向,最後回到了資源伺服器的介面,頁面也返回了資訊
image

這個時候資源伺服器會建立一個會話,cookie裡儲存了這個熟悉的身影(讓回到了10年前),那麼清除掉資源伺服器的cookie會怎麼樣呢?
image

重新整理一次頁面,下面才會顯示(為什麼)
image


清掉cookie後重新請求,頁面還是登入狀態,原來是隻清除了資源伺服器的會話,瀏覽器與認證伺服器的cookie並沒有清除,請求資源伺服器後一頓重定向,有成功顯示了頁面(沒有要求登入)
image


如果把認證伺服器的cookie清除了呢?清掉下面的cookie試一下
image


發現還是保持登入的,因為資源伺服器的cookie沒清除,所以對於資源伺服器來說,會話裡還是有登入資訊
image


都清除了試一下,這回跳轉到了登入頁
image

總結

  1. 之前忽略了認證伺服器的cookie,導致對於清除cookie還保持登入,一直存在疑問
  2. 本身邏輯應該不是很複雜,具體的oauth2流程還需要查一查資料。
  3. spring security、oauth2、jwt還需要研究研究。

相關文章