【问题标题】:How to redirect keyclock to application's page and get token如何将keycloak重定向到应用程序页面并获取令牌
【发布时间】:2020-12-26 20:29:38
【问题描述】:

我正在使用 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 回调,我可以在其中获取令牌并将用户重定向到应用程序的原始安全页面,用户希望在登录/注册之前访问该页面

【问题讨论】:

    标签: keycloak keycloak-gatekeeper keycloak-connect


    【解决方案1】:

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

    您可以在https://www.keycloak.org/docs/latest/server_admin/index.html#_authentication-flows找到更多信息

    将令牌作为查询参数传递通常被认为是一个坏主意,因为它们保留在浏览器历史记录中,如果其他人访问该浏览器并且 2° 被泄露给第 3 方,例如当您使用类似的东西时,1° 可能会被盗谷歌分析。

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

    【讨论】:

    • 您提到了“将令牌作为查询参数传递...”。你指的是我帖子中的网址吗?我认为这是一次性会话代码。需要哪些设置才能不将令牌作为查询参数传递?其次,在 keycloak JS 适配器中,我们获取令牌和刷新令牌。我将它们保存在自定义 cookie 中。这不是推荐的方法吗?我应该使用 keycloak 创建的 cookie 吗?哪个 keycloak cookie 有刷新令牌?
    • 不,我不是在谈论您在问题中输入的 URL,而是在谈论回调。 HTTPS 服务器 cookie 不能被窃取(它们对其他应用程序不“可见”)。在响应中将令牌发回给您也可以,但这不是 Keycloak 在注册后所做的。一旦您配置了我提到的浏览器重定向操作,您将看到 Keycloak 在用户注册后设置其 SSO cookie。从用户被重定向到的页面,您可以从 keycloak.token 和 keycloak.refreshToken (这是标准的“Keycloak 适配器”逻辑)获取访问令牌。如果您需要更多信息,请告诉我。
    • 不,我不是在谈论您在问题中输入的 URL,而是在谈论回调。 HTTPS 服务器 cookie 不能被窃取(它们对其他应用程序不“可见”)。在响应中发回令牌也可以,但这不是 Keycloak 在注册后所做的。您可以只配置我提到的浏览器重定向操作。您将看到 Keycloak 在用户注册后设置其 SSO cookie。从用户被重定向到的页面,您可以从 keycloak.token 和 keycloak.refreshToken (这是标准的“Keycloak 适配器”逻辑)获取访问令牌。如果您需要更多信息,请告诉我。
    • 在我的 keycload 安装中,我没有看到在注册流程结束时添加操作的选项。在验证电子邮件/配置文件后,我还想直接重定向到客户端允许的回调 URI 之一@otonglet
    • 浏览器/重定向不在流选项卡下的 Http Challenge 中吗?它不在注册中..
    猜你喜欢
    • 2021-05-10
    • 2017-10-27
    • 1970-01-01
    • 1970-01-01
    • 2021-09-07
    • 2022-07-20
    • 2017-11-10
    • 2012-05-31
    • 1970-01-01
    相关资源
    最近更新 更多