密匙斗篷令牌中是否有任何部分可以用作令牌本身的唯一ID? [英] Is there any part of Keycloak token which can be used as a unique ID of the token itself?
本文介绍了密匙斗篷令牌中是否有任何部分可以用作令牌本身的唯一ID?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
背景/动机
基于Keyloak令牌,我从数据库中获取用户的一些附加信息(sub
字段)。我要缓存信息,并且我正在查找缓存的适当键。
我不想使用sub
字段,因为我希望在密钥遮盖令牌更改时(=当为同一用户生成新令牌时)缓存条目无效。
我可以轻松地使用整个密钥罩令牌或其第三部分(签名)作为密钥。但是,它是一个相当长的字符串。
问题
密钥罩令牌中是否有可用作此特定令牌的唯一ID的字段?它保证始终存在,并且始终随令牌的新实例而更改。
sid
字段是这样工作的吗?至少看起来与sub
不同。
Keycloak令牌中有几个UUID,我被文档搞糊涂了。我发现只有这个clearly arranged table解释了Keyloak令牌字段的含义。
推荐答案
根据您的用例,我可以考虑使用id / email id
和Expires两个字段。
ID/电子邮件ID唯一且始终存在,因此可以满足您的需要。
过期不能单独使用,因为同时为2个用户生成的2个令牌可能具有相同的过期时间。那我为什么要用呢?如果您的缓存不支持TTL,那么可能会有过时的条目不必要地占用您的缓存。因此,如果您将密钥保留为";expiration.id";,则可能每隔24小时左右运行一次辅助作业,以根据第一部分(即过期)从缓存中删除过期条目。
以下是我的Java应用程序中的密钥遮盖令牌对象示例:
这篇关于密匙斗篷令牌中是否有任何部分可以用作令牌本身的唯一ID?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文