这是一个 Angular 17 SPA 应用程序。它使用的是当前最新版本的 keycloak-Angular (在撰写本文时 15.2.1),这是我根本不明白的。在默认设置中,我可以很好地进行身份验证并注销。但如果我敢重新加载页面,整个页面就会变砖,并且在检查时我发现收到了 400 Bad Request 错误。它说“无效参数:redirect_uri”。但为什么呢?
我的配置看起来大部分与项目中的示例相同,所以我不明白问题可能是什么。
function initializeKeycloak(keycloak: KeycloakService) {
return () =>
keycloak.init({
config: {
url: 'https://local.dev.auth/',
realm: 'my-test',
clientId: 'my-app'
},
initOptions: {
flow: 'standard',
onLoad: 'check-sso',
silentCheckSsoRedirectUri:
window.location.origin + 'ui/assets/silent-check-sso.html'
}
});
}
出于测试目的,我什至使本地运行的 keycloak dirty 的 docker 实例保持简单
您需要在 Keycloak 客户端和 Angular 应用程序中正确定义客户端详细信息。对于我的应用程序重定向 uri 保留为
/
然后它会被我的路由策略重定向,您必须根据您的策略进行更新
您应该以这种格式定义
对于
silentCheckSsoRedirectUri
我使用了身份提供者RedirectURI,您可以从中获取
(Sidenav)身份提供商->“您的提供商”->重定向 URI
对于 Keycloak Init 你也必须使用
initOptions: {
flow: 'standard',
onLoad: 'check-sso',
redirectUri: Valid_redirect_url,
silentCheckSsoRedirectUri: valid_sso_redirect_url
}