以单一形式实现短信 OTP 注册和登录 - keycloak

问题描述 投票:0回答:1

我想在 keycloak 中使用 SMS OTP 创建一个用于注册和登录的表单。这个想法是,用户输入他们的手机号码,单击“发送代码”,然后就会向他们发送 OTP。如果用户未注册,他们将注册并登录。如果他们已经注册,系统只会登录他们。

您能指导我如何实施吗?

keycloak
1个回答
0
投票

据我了解,

流程01:

  1. 设置 twilio 或任何服务来发送 otp
  2. 创建一个带有依赖项的maven项目
    <dependency>
     <groupId>org.keycloak</groupId>
     <artifactId>keycloak-server-spi</artifactId>
     <version>${keycloak.version}</version>
    </dependency>

    <dependency>
     <groupId>org.keycloak</groupId>
     <artifactId>keycloak-server-spi-private</artifactId>
     <version>${keycloak.version}</version>
    </dependency>

https://wjw465150.gitbooks.io/keycloak-documentation/content/server_development/topics/auth-spi.html

在Maven项目中为keycloak定制服务提供者,生成提供给keycloak的jar

在 SPI,

i) 创建自定义 otp.ftl 文件,该文件将在注册页面后呈现。

    @Override
    public void authenticate(AuthenticationFlowContext context) {
    
        Response challenge = context.form()
                .createForm("otp-login.ftl");
        context.challenge(challenge);
    }

ii) public void action(AuthenticationFlowContext context) {} for action 执行 otp 逻辑 iii) 成功后重定向到下一页

在钥匙斗篷定制中

i) 在 Keycloak 管理控制台中,您有身份验证 -> 注册流程

ii) 自定义注册流程进行注册

iii) 登录自定义浏览器流程

用于实现自定义 spi: 在Keycloak中实现自定义SPI

© www.soinside.com 2019 - 2024. All rights reserved.