Keycloak會話管理 refreshToken

2022-06-26 19:39:17 字數 1282 閱讀 1973

keycloak會話管理中,獲取到accesstoken和refreshtoken後,基於accesstoken交換使用者資料或者參與keycloakapi的請求,當accesstoken過期的時候,可使用refreshtoken去交換新的accesstoken和refreshtoken。

我們可能會遇到這樣乙個情況:當refreshtoken在請求的時候也過期了,這個時候,需要回到登入頁面。如果按照這樣的流程走,將帶來較差的體驗,需要使用者重新登入,尤其在較多模組中,這種方案極不可取。

我們先從正常的角度去請求token、基於refreshtoken交換token、基於offlinetoken交換token

基於oauth2-password獲取token

curl -x post -h "

" -d '

grant_type=password&client_id=roomis&username=123&password=123'"

http://keycloak網域名稱ip/auth/realms//protocol/openid-connect/token

基於refreshtoken獲取accesstoken和refreshtoken

curl -x post -h "

" -d '

grant_type=refresh_token&client_id=roomis&refresh_token='"

http://keycloak網域名稱ip/auth/realms//protocol/openid-connect/token

" | jq

請求後的結果如上圖所示。

備註

1基於上述獲取的refreshtoken是有失效期的,當剛剛好refreshtoken失效的時候,將不再獲取accesstoken,只能重新登入。

2 官方的解決辦法是獲取離線token,請參照:https://

解決方法是:在請求token的時候,假如scope=offline_access

快捷** --->>>>>>>

學習會話管理

管理瀏覽器與伺服器之間的會話過程中產生的會話資料 經過分析,資料共享可以使用域物件,因為servletcontext只有乙個,導致每次向裡面放資料的時候,如果鍵相同,值就會覆蓋所以不可行.而request物件雖然是多個,但是如果要取到共享的資料,需要使用 所以也不可行.因此出現了會話管理技術 coo...

會話管理 Cookie Session

乙個客戶端為了實現某個功能和伺服器產生的多次請求和加在一起成為一次會話,會話不可避免的就會產生和會話相關的資料,這些資料如何儲存是會話技術討論的重點內容,可以使用cookie 和 session這兩種技術儲存會話相關的資料 sun公司提供了便捷的api去操作cookie 1 cookie c new...

Spring Boot 會話管理

前情提要 本來專案用shiro可以用來作為會話管理,要配不少東西,且不一定有結果。並且用shiro會話管理會和devtools 熱部署包 衝突,需要剔除該包。此處不使用shiro進行會話管理,而是使用spring session redis實現session共享。1.新增依賴 org.springf...