![](/img/trans.png)
[英]Json Web Token (JWT) - can be used to guarantee the integrity of the HTTP body?
[英]Is there any part of JWT Keycloak token which can be used as a unique ID of the token itself?
我之前的問題是關於 Keycloak 令牌,但我發現的解決方案更通用,它適用於 JWT,無論 Keycloak 是什么。
基於 JWT Keycloak 令牌,我從我的數據庫中獲取了用戶的一些附加信息( sub
字段)。 我想緩存這些信息,我正在尋找一個合適的緩存鍵。
我不想使用sub
字段,因為我希望緩存條目在 Keycloak 令牌更改時失效(= 為同一用戶生成新令牌時)。
我可以輕松地使用整個 Keycloak 令牌或其第三部分(簽名)作為密鑰。 但是,它是一個相當長的字符串。
JWT Keycloak 令牌中是否有任何字段可以用作此特定令牌的唯一 ID? 保證始終存在,並且始終針對令牌的新實例進行更改。
sid
字段是這樣工作的嗎? 至少它似乎與sub
不同。
Keycloak 令牌中有幾個 UUID,我對文檔感到困惑。 我發現只有這張清晰排列的表格解釋了 Keycloak 令牌字段的含義。
最后我找到了JWT的詳細文檔: https://datatracker.ietf.org/doc/html/rfc7519
該字段不是特定於 keycloak 的,它在 JWT 標准中定義。
將字段jti
指定為:
jti
(JWT ID)聲明為 JWT 提供唯一標識符。 標識符值的分配方式必須確保同一值被意外分配給不同數據 object 的概率可以忽略不計; 如果應用程序使用多個發行者,則必須防止不同發行者產生的值之間的沖突。jti
聲明可用於防止重播 JWT。jti
值是區分大小寫的字符串。 使用此聲明是可選的。
該字段完全符合我“提供此特定令牌的唯一 ID”的要求。 我們的 keycloak 服務器似乎為該字段分配了一個 UUID。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.