如何在 keycloak 中验证令牌并获取用户详细信息?

Posted

技术标签:

【中文标题】如何在 keycloak 中验证令牌并获取用户详细信息?【英文标题】:How can I verify token and get user details in keycloak? 【发布时间】:2021-08-12 17:35:06 【问题描述】:

我在我的 nodejs 应用程序中为 keycloak 上的注册用户实现了 keycloak,对于登录 API,我使用了 API:

http://localhost:8080/auth/realms/master/protocol/openid-connect/token

如果用户名和密码正确,则返回登录用户的令牌,

现在我需要传递此令牌(由上述 API 返回)并检查此令牌是否正确,如果令牌正确,我需要用户详细信息,是否有任何 API 用于此。

提前致谢

【问题讨论】:

【参考方案1】:

现在我需要传递这个令牌(由上面的 API 返回)并检查这个 令牌正确与否

您需要使用 Keycloak 文档中的 introspection endpoint

token_introspection_endpoint

客户端可以使用的符合 OAuth2 的令牌自省端点 查询服务器以确定 RPT 的活动状态并 确定与令牌相关的任何其他信息,例如 Keycloak 授予的权限。

如果令牌正确,我需要用户详细信息,是否有任何 API 这个。

为此,您需要使用 userinfo_endpoint

这两个端点都可以在以下链接中找到:

KEYCLOAK_URL/auth/realms/REALM_NAME/.well-known/openid-configuration 

【讨论】:

以上是关于如何在 keycloak 中验证令牌并获取用户详细信息?的主要内容,如果未能解决你的问题,请参考以下文章

在 Keycloak SPI/Provider 中获取当前用户访问令牌(初始登录时)

如何获取访问令牌中的角色:keycloak

如何在 Keycloak 中使用手机号码对用户进行身份验证

如何使用公钥在本地验证 keycloak 访问令牌

Keycloak:访问令牌验证端点

如何在 Spring Security 中将令牌转换为身份验证?