中文字幕精品亚洲无线码二区,国产黄a三级三级三级看三级,亚洲七七久久桃花影院,丰满少妇被猛烈进入,国产小视频在线观看网站

keycloak~Refresh_token階段(duan)不走(zou)RequiredAction

Refresh_token是在access_token過期(qi)之后(hou),用來(lai)換(huan)新(xin)的access_token的,有(you)了Refresh_token之后(hou),用戶(hu)可(ke)以在很長(chang)一(yi)段時間不需要重新(xin)登錄(lu),這對于用戶(hu)體驗是有(you)好處的;RequiredAction是一(yi)種登錄(lu)階(jie)段的必選行為,當一(yi)個(ge)用戶(hu)被某個(ge)RequiredAction標記(ji)之后(hou),用戶(hu)必須(xu)完成(cheng)RequiredAction,才算完成(cheng)本次登錄(lu)。

Refresh_token階段是否會檢查RequiredAction

這個(ge)(ge)答案是否定的(de)(de),當一(yi)個(ge)(ge)用戶登錄之后,它在后臺(tai)被標記一(yi)個(ge)(ge)RequiredAction,對(dui)于(yu)已經(jing)產生的(de)(de)refresh_token是不會有影響的(de)(de),你拿著refresh_token還是可以直接換新的(de)(de)access_token。

當用戶被禁用了,Refresh_token是否會被就叫影響

這個答(da)案是肯(ken)定的(de),當一個用戶的(de)enable為false時,用戶所產生的(de)refresh_token就(jiu)無法(fa)換回(hui)新的(de)token了,這時會有http_status為400的(de)錯誤返(fan)回(hui)

{
    "error": "invalid_grant",
    "error_description": "User disabled"
}

從keycloak源代碼中也是可以看到的,位于org.keycloak.protocol.oidc.endpoints.TokenEndpoint類型的(de)refreshTokenGrant()方法(fa),有(you)判(pan)斷用戶是否有(you)效的(de)方法(fa),在`tokenManager.refreshAccessToken()方法(fa)中,如圖

從內部方法可以(yi)找到判斷用戶狀態的代碼,如下

if (!user.isEnabled()) {
  throw new OAuthErrorException(OAuthErrorException.INVALID_GRANT, "User disabled", "User disabled");
}

如果希望refresh_token階(jie)段對(dui)(dui)用戶的required action有所控制,可(ke)(ke)以在這里(li)添加對(dui)(dui)應的邏輯即(ji)可(ke)(ke)。

posted @ 2024-09-03 15:18  張占嶺  閱讀(83)  評論(0)    收藏  舉報