在應用程式當中,sessions 用來記錄使用者的活動狀態。當使用者登入應用程式之後,就會產生一個 session;當使用者開始在應用程式當中活動、送出請求的時候,應用程式就可以透過 session 知道這個請求是來自該使用者,以及過去可能的活動狀態。
不過當我們實作 OpenID、將 authentication 委外給 identity provider 處理之後,就會發現可能有多個 session 同時存在,也就是在 Client
以及 identity provider 當中都有 sessions 的存在,來紀錄使用者的活動狀態。
跟過去的狀況比起來,現在遇到的問題就會是「如何在不同的 server」同步管理同一個使用者的 session。管理 session 可能會遇到一些事件,像是
等等。
舉例來說,如果使用者在 Client
點擊登出按鈕,這時 Client
刪除使用者的 session,但如果沒有同步告知 identity provider 刪除的話,那麼當使用者再次進入 Client
端,就有可能還是維持登入的狀態。