You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何自定义Keycloak登录主题将社交登录按钮置于顶部?

调整Keycloak登录页面中社交登录按钮的位置到顶部

当然可以调整,核心是通过自定义Keycloak的登录主题来修改页面布局,具体步骤如下:

  • 复制默认主题作为自定义基础
    找到Keycloak安装目录下的themes文件夹,复制其中的keycloak主题(推荐用这个,是默认的定制版主题)到同一目录下,重命名为比如custom-login-theme。如果是Quarkus版本的Keycloak(17+),主题目录可能在conf/themes下。

  • 修改登录页面模板
    进入自定义主题的login子目录,打开login.ftl文件(这是登录页的FreeMarker模板)。找到社交登录相关的代码块——通常是包含<#include "social.ftl">的部分,或者直接是渲染社交登录按钮的${providerTemplates}变量。把这部分代码移动到用户名密码登录表单的前面。

    举个例子,原来的结构大概是:

    <div class="card-pf">
        <#include "messages.ftl">
        <form id="kc-login-form" class="form-horizontal" action="${url.loginAction}" method="post">
            <!-- 用户名密码输入框等内容 -->
        </form>
        <#include "social.ftl">
    </div>
    

    修改后变成:

    <div class="card-pf">
        <#include "messages.ftl">
        <#include "social.ftl">
        <form id="kc-login-form" class="form-horizontal" action="${url.loginAction}" method="post">
            <!-- 用户名密码输入框等内容 -->
        </form>
    </div>
    
  • 启用自定义主题
    登录Keycloak管理控制台,进入你要修改的Realm,点击左侧菜单的「Themes」,在「Login Theme」下拉列表中选择你创建的custom-login-theme,保存后刷新登录页面,就能看到社交登录按钮移到顶部了。

注意:不要直接修改默认的keycloak或base主题,否则Keycloak升级时你的修改会被覆盖。如果是Docker部署的Keycloak,需要把自定义主题目录挂载到容器内对应的路径。

内容的提问来源于stack exchange,提问作者Albert

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 10:23:16