Keycloak从注册表中删除名字和姓氏

Posted

技术标签:

【中文标题】Keycloak从注册表中删除名字和姓氏【英文标题】:Keycloak remove first and last name from registration form 【发布时间】:2019-06-27 09:55:05 【问题描述】:

我想只使用电子邮件和密码注册用户。

从 register.ftl 中删除字段,将从 UI 中删除它们,但服务器仍将验证它们。

这个问题非常相似: Keycloak Remove First Name and Last Name fields on Registration Screen

问题是我在较新版本的 Keycloak 中找不到这些验证检查,我使用的是 v 4.8.1。

最好的解决方案是完全删除它们并继续验证其他字段,但禁用表单验证并使用自定义验证也适用于我。

提前谢谢你

【问题讨论】:

【参考方案1】:

这是我为 keycloak v4.8.3 所做的解决方法。

不再有禁用表单注册表单验证的选项,因此您有两个选择

完全禁用 keycloak 注册流程,仅依赖社交 登录(这实际上是一种非常流行的方法,不仅 带钥匙斗篷)

到 keycloak-4.8.1.Final/themes/base/login,找到 register.ftl 并为名字和姓氏添加默认值,然后向它们添加样式 display none ,这样它们就不会显示了。像这样:

 <div class="$properties.kcFormGroupClass! $messagesPerField.printIfExists('firstName',properties.kcFormGroupErrorClass!)" style="display:none">
        <div class="$properties.kcLabelWrapperClass!">
            <label for="firstName" class="$properties.kcLabelClass!">$msg("firstName")</label>
        </div>
        <div class="$properties.kcInputWrapperClass!">
            <input type="text" id="firstName" class="$properties.kcInputClass!" name="firstName" value="temp_first_name"/>
        </div>
 </div>

希望对您有所帮助。

【讨论】:

嘿,感谢您的回复,如何完全禁用 keycloak 注册流程? 不确定是否可以。但是您可以忽略它,将 KC 用作服务。但是,如果您也想使用社交登录部分,它会变得有点复杂。 ***.com/questions/54219092/… 谢谢,我们最终使用了电子邮件地址的硬编码值作为映射,这样注册表单就不再需要购买了

以上是关于Keycloak从注册表中删除名字和姓氏的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Java API 从 keycloak 获取用户的名字、姓氏和属性?

Django rest-auth allauth 注册,带有电子邮件、名字和姓氏,没有用户名

php 在注册页面添加名字,姓氏和账单手机号码表格

验证阿拉伯语的名字和姓氏

从 Html Forms 在 sql 表中记录信息的问题

使用 keycloak rest admin API (Oauth2) 修改用户姓氏后 jhipster 重新加载 OIDC 令牌