javascript - 如何在 Keycloak 中预先填写注册字段? (keycloak中是否有一个叫做 "register_hint"的东西?)

标签 javascript node.js authentication keycloak registration

我正在使用 Keycloak 来保护我的 Javascript 应用程序。当点击一个按钮时,我想要一个注册页面打开我现有的电子邮件。我的意思是,keycloak 注册页面将打开,并预先填写电子邮件字段。
我发现我们可以在登录页面中使用 login_hint 执行此操作.通过将其添加到链接的末尾。
例子:

http://localhost:8080/auth/realms/realm_name/protocol/openid-connect/auth?client_id=client_id&redirect_uri={url}&response_mode=fragment&response_type=code&scope=openid&nonce={...}&login_hint=exmaple@gmail.com
但我不知道我是否可以对注册页面做同样的事情。有办法吗?
谢谢

最佳答案

我知道这个问题已经有 10 个月了,但我正在回答它,因为毫无疑问我将来会再次遇到这个问题,并希望我能偶然发现这个答案。
为此,我在我的 KeyCloak 主题中添加了一段 Javascript。
类似于以下内容:

document.addEventListener("DOMContentLoaded", (event) => {
    let email = getUrlParameter('email');
    
    if (email) {
        let field = document.getElementById('email');
        field.value = email;
    }
});

function getUrlParameter(name) {
    name = name.replace(/[\[]/, '\\[').replace(/[\]]/, '\\]');
    var regex = new RegExp('[\\?&]' + name + '=([^&#]*)');
    var results = regex.exec(location.search);
    return results === null ? '' : decodeURIComponent(results[1].replace(/\+/g, ' '));
};
然后我只是将用户发送到 keycloak 注册屏幕,并在 URL 参数中使用他们的电子邮件。

关于javascript - 如何在 Keycloak 中预先填写注册字段? (keycloak中是否有一个叫做 "register_hint"的东西?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63117669/

相关文章:

javascript - 如何检查焦点是否离开一组元素

javascript - 为什么指令没有执行

javascript - 尝试 console.log 我从 socket.io 收到的消息时收到 401~UNAUTHORIZED

php - 我是否在登录系统中使用 cookie 或 session 登录?

python - Django 测试 : Using a login decorator for test cases

javascript - iPhone webview 键盘将布局上推并保留

javascript - 如何将 css 类名称添加到 Squarespace 中的文本 block ?

javascript - 使用 gulp/nodejs 从 LESS/CSS 文件中获取十六进制颜色?

javascript - 在 Node.js 中使用 WriteStream 写入文件时出现编码错误

Apache Tomcat 6 显示访问被拒绝错误而不是身份验证质询