Keycloak中“完成注册”字母的“欢迎”

时间:2019-08-07 11:36:28

标签: keycloak

通过Keycloak管理控制台创建用户时,是否可以通过电子邮件通知用户已创建配置文件,并且用户可以通过链接完成注册? 当前,只有在创建后为该用户设置密码的情况下,该用户才能收到有关正在创建的配置文件的电子邮件。并且只有在初次登录尝试之后。但是对于这种登录尝试,用户应该知道所设置的密码。

1 个答案:

答案 0 :(得分:3)

我通过为发送的电子邮件和登录页面自定义keycloak主题模板来完成同样的事情。这是Keycloak docs,有关如何自定义主题的信息。

这是我的操作方式的详细信息:

首先,我非常漂亮地自定义了executeActions.ftl电子邮件模板,并说“欢迎使用我们的应用程序,请单击下面的链接以完成您的帐户设置”。我继续使用默认基础模板中的链接和链接过期说明。您可以在https://github.com/keycloak/keycloak/blob/master/themes/src/main/resources/theme/base/email/html/executeActions.ftl

看到默认的基本模板

第二,我们决定了新用户将“需要”哪些标准的密钥隐藏操作。我们决定要完成注册,将要求用户执行以下操作:

  1. 接受条款和条件
  2. 输入他们的全名(更新他们的个人资料)
  3. 设置新密码

第三,我们设置Keycloak领域,要求所有用户都要执行3个步骤。 在Keycloak管理控制台中,我们将它们设置为“必需”操作(在“配置->身份验证->必需操作下”),将“条款和条件”,“更新配置文件”和“更新密码”操作标记为“已启用” ”和“默认操作”。我们还将这些操作按照希望它们出现在用户将逐个屏幕浏览的“帐户设置”过程中的确切顺序放置。对于其他操作,我们未选中默认操作。 enter image description here

第四,我自定义了以下用于显示帐户设置页面的密钥库登录模板。嵌入在executeActions电子邮件(来自步骤1)中的密钥库生成的链接会将用户带到这些“帐户设置”网页:

  • info.ftl -默认为here。单击欢迎电子邮件中的链接后,用户最终进入此模板生成的页面。该页面通常呈现显示各种通用信息消息的网页, 但它还会呈现帐户设置过程的“第一”和“最后”页面。因此,我对其进行了修改,以检查message.summary是否与帐户设置过程的第一步或最后一步匹配。如果是第一步,我将在页面上呈现“欢迎”文本。如果这是最后一步,那么我会渲染类似“您的帐户已设置。点击此处登录'。有关如何修改info.ftl,请参见下文。
<!-- 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 -->

我还自定义了以下模板,它们与帐户设置过程中的步骤相对应。

  • terms.ftl -显示条款和条件步骤
  • login-update-profile.ftl -显示用户需要输入/更新其全名的步骤
  • login-updated-password.ftl -提示用户更改密码。

第五,当管理员创建新用户时,他/她触发向用户发送欢迎电子邮件:  -在Keycloak管理控制台中,“添加”新用户后,转到该用户的“凭据”标签,然后在“凭据重置”下选择“重置操作”下所需的帐户设置操作,然后单击“发送电子邮件”按钮。

List item

无论如何,我希望这会有所帮助。我记得我花了一些时间才弄清楚,因为这不是密钥斗篷内的标准流程。