首页 > 解决方案 > 如何在 Rails 中通过 OTP 实现电子邮件验证?

问题描述

在我的 Rails 应用程序中,我通过 OTP 实施移动验证。(使用 active_model_otp)。现在我的客户要求是他也希望通过 OTP 进行电子邮件验证(意味着需要将具有 6 位 otp 的电子邮件发送到电子邮件。如果他输入,则应该进行电子邮件验证。)

目前正在通过确认链接进行电子邮件验证,该链接在用户注册时发送给用户(设计默认电子邮件验证功能)

现在我的问题是如何在这种情况下实现 OTP 验证,我可以使用相同的 gem 来完成它吗?当我检查 gem 文档时,我没有发现任何与使用 otp 进行电子邮件验证相关的信息,尽管这个 gem(active_model_otp)

我需要更改这些 gem(设计,active_model_otp)来实现它还是我们需要手动实现它。

标签: ruby-on-railsemaildeviseone-time-password

解决方案


他约翰,我也在做同样的事情,但还没有完成,所以现在不能分享代码。本质上,我的想法是制作额外的 /mfa/otp_qr 和 /mfa/otp_mail 控制器(和视图)和父视图供用户选择邮件或 qr 身份验证,即在 /users/registrations/edit.html.erb (和相应地路由它)。Active_model_otp gem 只处理 sec.codes 生成/比较,而不是如何向用户显示这些(即使用 QR 码)或通过电子邮件发送(我猜 SMS 也是可行的)。


推荐阅读