如何在 Keycloak .ftl 模板中加载用户数据?
Posted
技术标签:
【中文标题】如何在 Keycloak .ftl 模板中加载用户数据?【英文标题】:How can I load user data in a Keycloak .ftl template? 【发布时间】:2021-09-12 14:53:54 【问题描述】:我有一个自定义的 login-update-password.ftl 文件。我想显示用户的名字和姓氏。在基本示例的模板文件中,我看到了$username
,它让我可以显示用户名。但是当我做$firstname
时,会发生以下情况:
12:25:46,752 ERROR [freemarker.runtime] (default task-3) Error executing FreeMarker template: freemarker.core.InvalidReferenceException: The following has evaluated to null or missing:
==> firstname [in template "login-update-password.ftl" at line 14, column 3]
当我执行$user.firstname
时,会发生以下情况:
12:27:40,453 ERROR [freemarker.runtime] (default task-2) Error executing FreeMarker template: freemarker.core.InvalidReferenceException: The following has evaluated to null or missing:
==> user [in template "login-update-password.ftl" at line 14, column 3]
我调试了可用的变量,但似乎没有什么是我需要的。
<#list .data_model?keys as key>
$key
</#list>
msg
execution
social
auth
isAppInitiatedAction
requiredActionUrl
message
locale
authenticatorConfigured
login
url
messagesPerField
client
realm
kcSanitize
scripts
properties
username
如何加载更多用户数据?
【问题讨论】:
【参考方案1】:尝试使用 getFirstName 方法代替 (user.firstname)。 例如:user.getFirstName()
【讨论】:
缺少用户变量。因此,当我尝试$user.firstname
时,我收到与上述相同的错误。所以当我做$user.getFirstName()
时,我也会收到The following has evaluated to null or missing: ==> user ....
。
另外,如果$user.getFirstName()
有效(是的,它没有),那么更好的形式是$user.firstName
(不是get
和()
,Name
是大写字母)。
以上是关于如何在 Keycloak .ftl 模板中加载用户数据?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 keycloak 的 ftl 文件中包含 React js 文件?