在注册时,Keycloak 提供添加 custom user attributes 的功能。通过 Keycloak 主题的注册页面模板,通过“输入”元素,看起来像:
<input id="user.attributes.[the_custom_attribute]" name="user.attributes.[the_custom_attribute]" />
但是,这似乎只有在用户创建帐户并提交表单时才有效。如果用户通过 Social Identity Provider 登录(google、microsoft、github 等...)我们如何添加自定义用户属性?
最佳答案
如果您使用社交身份提供程序登录应用程序,则 customer_attribute
你将无法使用。
但是如果您仍然希望在该用户登录之前为其设置该属性,那么您可以添加 custom required action来实现这个功能。您可以创建新的 RequiredCustomAttribute 操作并从管理控制台启用它。
实现您自己所需的操作,类似于 org.keycloak.authentication.requiredactions.UpdateProfile
keycloak 提供的类。您可以标记您的 customer_attribute
按照这个新的必需操作流程的要求。
当您完成上述所有操作后,下次用户使用社交身份提供程序登录时,他/她将被要求输入 custom_attribute
在下一页。
关于Keycloak:在社交身份提供者登录时传递自定义用户属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67653822/