Keycloak &引用;“欢迎”;“的;完成注册“;带钥匙斗篷的信
当通过KeyClope管理控制台创建用户时,是否有方法通过电子邮件通知用户已创建配置文件,并且用户可以通过链接完成注册?Keycloak &引用;“欢迎”;“的;完成注册“;带钥匙斗篷的信,keycloak,Keycloak,当通过KeyClope管理控制台创建用户时,是否有方法通过电子邮件通知用户已创建配置文件,并且用户可以通过链接完成注册? 目前,只有在创建后为用户设置了密码,用户才能收到有关创建配置文件的电子邮件。并且只有在初次登录尝试之后。但是对于这次登录尝试,用户应该知道设置的密码。我通过为发送的电子邮件和登录页面定制KeyClope主题模板完成了同样的任务。下面是有关如何自定义主题的详细信息 以下是我如何做到这一点的细节: 首先,我定制了executeActions.ftl电子邮件模板,使其美观,并说“欢
目前,只有在创建后为用户设置了密码,用户才能收到有关创建配置文件的电子邮件。并且只有在初次登录尝试之后。但是对于这次登录尝试,用户应该知道设置的密码。我通过为发送的电子邮件和登录页面定制KeyClope主题模板完成了同样的任务。下面是有关如何自定义主题的详细信息 以下是我如何做到这一点的细节: 首先,我定制了executeActions.ftl电子邮件模板,使其美观,并说“欢迎使用我们的应用程序,单击下面的链接完成帐户设置”。我继续使用默认基本模板中的链接和链接过期说明。您可以在中看到默认的基础模板 其次,我们决定了新用户“需要”哪些标准KeyClope操作。我们决定,要完成注册,用户需要执行以下操作:
- info.ftl-默认为。单击欢迎电子邮件中的链接后,用户将进入此模板生成的页面。此页面通常呈现显示各种通用信息消息的网页, 但它也会呈现帐户设置过程的第一页和最后一页。因此,我对其进行了修改,以检查message.summary是否与帐户设置过程的第一步或最后一步匹配。如果这是第一步,我会在页面上呈现“欢迎”文本。如果这是最后一步,我会呈现类似“您的帐户已设置”的内容。单击此处登录。我是如何修改info.ftl的,请参见下文
${messageHeader}
${kcSanitize(msg('welcomeToOurApplication'))?无
${kcSanitize(msg('accountSuccessfullySetup'))?否\u esc}
${message.summary}
${kcSanitize(msg('startSettingUpAccount'))?否\u esc}
${kcSanitize(msg('accountIsReadyPleaseLogin'))?否esc}
${message.summary}
...
我还自定义了以下模板,这些模板与帐户设置过程中的步骤相对应
- 条款。ftl-显示条款和条件步骤
- 登录更新配置文件。ftl-显示用户需要输入/更新其全名的步骤
- 登录更新密码。ftl-提示用户更改密码
不管怎样,我希望这有帮助。我记得我花了一点时间才弄清楚,因为这不是KeyClope中的标准流程。谢谢您如此详细的回答。我也想到了这个流程,但它似乎有点黑客,我希望有一个更好的方式来做到这一点,开箱即用。我相信你可以使用KeyClope api发送验证电子邮件,这可能会消除有人发送电子邮件的需要。是的,触发电子邮件可以通过api完成:查找
/{realm}/users/{id}/执行操作电子邮件
<!-- info.ftl -->
<#import "template.ftl" as layout>
<@layout.registrationLayout displayMessage=false; section>
<#if section = "header">
<#if messageHeader??>
${messageHeader}
<#else>
<#if message.summary == msg('confirmExecutionOfActions')>
${kcSanitize(msg('welcomeToOurApplication'))?no_esc}
<#elseif message.summary == msg('accountUpdatedMessage')>
${kcSanitize(msg('accountSuccessfullySetup'))?no_esc}
<#else>
${message.summary}
</#if>
</#if>
<#elseif section = "form">
<div id="kc-info-message">
<div class="kc-info-wrapper">
<#if message.summary == msg('confirmExecutionOfActions')>
${kcSanitize(msg('startSettingUpAccount'))?no_esc}
<#elseif message.summary == msg('accountUpdatedMessage')>
${kcSanitize(msg('accountIsReadyPleaseLogin'))?no_esc}
<#else>
${message.summary}
</#if>
</div>
<#if pageRedirectUri??>
... <!-- Omitted the rest because it's the same as the base template -->