如何在rails应用中添加OTP/Captcha登录



如何在rails应用程序中通过sms/captcha添加OTP进行登录认证…

组织ID,注册邮箱,密码:系统专用键:==>提交按钮。然后显示OTP字段OTP通过短信:,验证码:

添加宝石——RECAPTCHA

 gem "recaptcha", :require => "recaptcha/rails"

然后注册一个reCAPTCHA API密钥并将其添加到您的环境配置文件:

1 #put this in development.rb and in production.rb (separate keys in each so you can test!)
2 RECAPTCHA_PUBLIC_KEY= 'your-public-key'
3 RECAPTCHA_PRIVATE_KEY= 'your-private-key'

并添加以下内容到配置文件

 #in config/initializers/recaptcha.rb
 Recaptcha.configure do |config|
   config.public_key  = RECAPTCHA_PUBLIC_KEY
   config.private_key = RECAPTCHA_PRIVATE_KEY
 end

<%= raw recaptcha_tags %>
Captcha Gem提供了另一个帮助器方法,该方法发送到reCaptcha API服务器以检查提交的内容是否正确
##replace model.save with this
if @model.save ....
if verify_recaptcha(:model => @model, :message => "Please enter the correct captcha!") && @model.save

如果你想使用验证码与设计,访问这里

最常见和可访问的一次性密码(OTP)是基于短信或语音的,因为默认情况下,即使是最早一代的移动电话也可以使用短信和语音。如果你正在开发一些针对世界上每个国家各行各业的人的服务,这使得短信/语音OTP成为理想的选择。

要发送短信/语音OTP,您需要向位于互联网和电话基础设施之间的短信/语音网关发送请求。

不幸的是,所有的短信/语音网关都是由付费服务拥有的,因此没有开源这样的东西,我可以推荐。幸运的是,我们找到了RingCaptcha (https://ringcaptcha.com),它有一个"入门计划",每月免费提供500个OTP。这只是他们提供免费增值服务的一个小卖点;它们非常可靠,因为它们与所有主要的全球和区域提供商集成,例如,Twilio, Nexmo, Infobip, MessageBird等,并通过基于国家/电话运营商的最佳提供商/路由发送您的OTP,并且可以自动回退到替代路径。这意味着您只需要与RingCaptcha集成,而无需决定哪个短信/语音OTP提供商具有价格和可靠性的最佳组合,这是一个真正令人头痛的问题,当您在全球范围内发送OTP时。

他们有一个简单的循序渐进的教程,大约需要2-3分钟来实现OTP登录:https://coderwall.com/p/x3zczq/rails-devise-alternative-password-less-database-less-user-sign-in-sign-up-using-2fa-in-2-minutes

它基于一个gem 'user_management_rails'。

我将在这里总结这些步骤:

    创建Rails应用程序
    • $ rails new YOUR_APP_NAME
  • 安装user_management_rails gem
    • 添加到'Gemfile': gem 'user_management_rails'
  • 包安装
  • 在此注册RingCaptcha: https://my.ringcaptcha.com/register
  • 运行生成器创建注册、登录、注销页面
    • rails generate user_management_rails:install --ringcaptcha-key=YOUR_RINGCAPTCHA_APP_KEY --um-key=YOUR_UM_KEY
  • 启动Rails服务器
    • rails server
  • 试试!
    • http://localhost:3000/

这些链接reCAPTCHA和Rails和reCAPTCHA将帮助您添加验证码到您的应用程序。

你可以使用active_model_otp在你的rails应用程序中实现一次性密码(OTP)功能

最新更新