如何将关键时钟重定向到应用程序的页面并获取令牌

问题描述

我正在使用keycloak的登录注册页面。对于登录,我使用:

 keycloak.init({onLoad: 'login-required'}).then(function (authenticated) {
        if (!authenticated) {
           
        } else{

        }

这很好用,因为我可以使用上面的代码重定向到收到令牌的应用程序页面。但是,如果用户单击注册链接注册新用户,我会看到浏览器重定向到:

htttps://localhost/auth/realms/realm1/login-actions/registration?session_code=2TC4xBE5BoFy_Dt7nK8wNDzdlx-8rJmA7l0IjTY1Khk&execution=2e64e3ef-185a-4ca8-a6cc-51c40f9fb7fc&client_id=bizmapp&tab_id=EbayK64spNk

注册后,我希望进行密钥泄漏回调,这样我可以获取令牌并将用户重定向用户想要在登录/注册之前进入的应用程序原始安全页面

解决方法

在Keycloak管理界面中,转到“身份验证”,然后转到“流”选项卡。 在左上方的下拉菜单中选择“注册”以配置注册流程。 然后,您可以在流的末尾添加“浏览器重定向/刷新”操作。

您可以在https://www.keycloak.org/docs/latest/server_admin/index.html#_authentication-flows

中找到更多信息。

将令牌作为查询参数传递通常被认为是一个坏主意,因为它们保留在浏览器历史记录中,如果其他人访问该浏览器,则1°可能会被盗,而2°则泄露给了第三方,例如, Google Analytics(分析)。

您的应用程序应该能够检测到用户已从Keycloak SSO cookie(或任何其他机制)进行了身份验证,我认为它将在注册后自动设置。您只需要依靠为应用程序配置的Keycloak adapter