“验证电子邮件”中的 keycloak 配置 http-Link

问题描述

当我的用户收到“请验证电子邮件链接”时,模板中的链接始终为:http://localhost:8280/auth....

首先,我尝试在我的领域中设置前端 URL:

enter image description here

但在此更改后,我无法再启动我的 quarkus 应用程序,因为我收到以下错误消息:颁发者验证错误:收到 [https://myLinkToMyWebsite.com/auth/realms/turniersoftware]

所以我在 keycloak 中删除了这个设置。

我认为 keycloak 正在使用此 URL 进行电子邮件广播。 “Quarkus-portal”是我的java应用程序。

enter image description here

如果我在 keycloak 中单击模拟用户并在 keycloak 管理网站中设置“验证电子邮件”操作,我会收到带有正确链接的电子邮件验证电子邮件

如果我的 java 程序说“sendVerifyEmail”,它将用“localhost:8280”发送

有人可以解释一下,我必须配置什么才能使我的电子邮件广播中的域正确。谢谢

解决方法

根据 keycloak 文档 默认主机名提供程序使用配置的 frontendUrl 作为前端请求(来自用户代理的请求)的基本 URL,并使用请求 URL 作为后端请求(来自客户端的直接请求)的基础). 在您的情况下,我认为配置的客户端是 Java client(which is backend) ,因此为了强制所有后端请求通过公共域(frontendUrl),您可能需要设置 forceBackendUrlToFrontendUrl 属性到 true 文件中的 standalone.xml。 请查看以下链接以获取更多参考。 Hostname SPI