我使用 Keycloak 作为 React 应用程序的身份验证提供程序。我使用了 k8s helm 部署来部署 Keycloak(使用这个 Bitnami 包来部署 Keycloak )。在 React 方面,我使用 @react-keycloak/web。
我用 ReactKeycloakProvider 包装整个应用程序:
<ReactKeycloakProvider authClient={client}>
<App />
</ReactKeycloakProvider>
为了获取访问令牌,我正在利用 @react-keycloak/web 中的 useKeycloak() 挂钩:
const { keycloak } = useKeycloak();const token = keycloak?.token;
问题在于令牌签名(使用jwt.io检查)。本地运行Keycloak时,签名有效。但是,当使用部署的 Keycloak 时,我遇到了错误 - 签名无效。我正在使用
RS256
算法进行解码。我想使用 OAuth 2.0 身份验证代码授予类型。
我在 keycloak 中使用这些设置。 钥匙斗篷设置
我正在寻求帮助以确定此问题的潜在原因。
我尝试使用 HS256 算法解码访问令牌。我希望使用部署的 Keycloak 时令牌签名有效。然而,实际结果是一个错误,表明签名无效。 本地 keycloak 令牌具有有效签名。
得到答案了。
解码需要Keycloak端的公钥。 获取公钥 - 领域设置 -> 密钥。