【问题标题】:How to check if Keycloak OTP 2FA is enable in Angular?如何检查 Angular 中是否启用了 Keycloak OTP 2FA?
【发布时间】:2022-06-11 01:38:57
【问题描述】:

我是 keycloak 的新手。 我们有一个 Angular 应用程序,它使用 keycloak 服务登录并获取我们已经配置的一些用户属性,但现在我必须检查是否启用了 keycloak OTP 所需操作,因为如果启用,我必须显示一个按钮来重定向用户到 topt.ftl 扫描 keycloak 给出的二维码。否则按钮必须隐藏。

我一直在寻找信息,但没有找到任何相关信息。任何文件或线索都会很好。谢谢!

我尝试使用 keycloakService npm 库来访问 totp,我发现如果你像这样实例化这个服务:

this.keycloakService.getKeycloakInstance()

有一个对象名称“profile”,它是 KeycloakProfile 类型:在这个对象中有一个名为 topt? 的属性,我调用了该方法,然后我打印了响应,它是:

keycloak-profile {"username":"srueda@ec.krugercorp.com","firstName":"JHOANN","lastName":"RUEDA","email":"srueda@ec.krugercorp.com" ,"emailVerified":true,"attributes":{"secondLastName":["VANEGAS"],"termsAccepted":["TCU##PPR"],"secondName":["SEBASTIAN"]}} 58410ae9-331c- 4b1c-9992-4c49368efc83

显示用户的属性。

【问题讨论】:

    标签: keycloak keycloak-services keycloak-rest-api keycloak-angular


    【解决方案1】:

    如果你有与 keycloak 集成的后端,你可以使用返回的端点检查它

    public Boolean checkIsTotp(String username) {
        List<UserRepresentation> userList = keycloak.realm(this.realm).users().search(username);
        if(userList.size() > 0) {
            return userList.get(0).isTotp();
        }
        return false;
    }
    

    【讨论】:

      【解决方案2】:

      我得到了答案,也许可以通过 Angular 获取该信息,但 Keycloak 有一个 API 列表可用于后端项目 如果您使用名为“获取所需操作返回所需操作流”的 API,则会有一个包含所有所需操作信息的列表。您应该创建一个服务来获取该信息并将其发送到前端。我希望它对任何人都有帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-02-09
        • 2017-12-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多