加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Rails 3和Twilio进行电话验证

发布时间:2020-12-17 03:45:01 所属栏目:百科 来源:网络整理
导读:我在Rails 3中构建一个应用程序,使用twilio来验证企业的存在.基本上,当您创建新的商务时,我会随机生成一个6位数字,然后使用此验证码调用商家电话号码,用户需要将其输入系统以完成注册过程.我无法找到有关如何设置此设置的相关示例.我找到了 this,但它看起来
我在Rails 3中构建一个应用程序,使用twilio来验证企业的存在.基本上,当您创建新的商务时,我会随机生成一个6位数字,然后使用此验证码调用商家电话号码,用户需要将其输入系统以完成注册过程.我无法找到有关如何设置此设置的相关示例.我找到了 this,但它看起来非常过时,似乎与Rails 3不兼容. twilio-rb gem的文档也令人困惑.

有没有人知道任何例子或有任何代码样本可以指向我正确的方向?

解决方法

正如我在你的问题评论中所说,我是你提到的twilio-rb gem的作者.在我的头顶,我会实现一个你发布电话号码的验证资源.

POST /verifications.voice { telephone_number: '+12125551234' }

在create action中,使用Twilio :: Call.create创建一个使用Twilio的新调用

def create
  @verification = Verification.new params[:verification]

  if @verification.save
    Twilio::Call.create to: @verification.telephone_number,from: YOUR_CALLER_ID,url: verification_url(@verification,format: :voice)
    # 201 created and return verification code etc
  else
    # Handle errors
  end
end

您还需要解决twilio-rb可能引发的任何API错误. url指的是验证资源实例的show动作.然后Twilio将拨打提供的电话号码,并且当呼叫被连接时,将请求该URL,例如,GET /verifications/1.voice所以您需要一个显示视图,询问验证码并使用<Gather> verb收集数字:

res.gather num_digits: 4,action: twilio_hack_verification_url(@verification,:format => :voice),method: 'POST' do |form|
  form.say 'Please enter the your 4 digit verification code'
end

由于Twilio目前没有实现PUT动词,因此您将向您的资源添加成员

resources :verifications do
  member { post 'twilio_hack' }
end

然后在您的控制器中使用用户输入更新对象:

def twilio_hack
  @verification = Verification.find(params[:id]).tap do |v|
    v.user_input params['Digits']
    v.save
  end

  if @verification.confirmed?
    # handle success
  else
    # handle failure
  end

end

最后,在您的模型中,您将需要生成验证码的代码,并验证是否已确认

class Verification < ActiveRecord::Base
  before_save   -> { self[:confirmed] = true if user_input == verification_code },if: user_input
  before_create -> { self[:verification_code] = rand.to_s[2..5] }
end

这一切都是未经测试的,并且在大约2分钟的时间里我想到了,但它应该让你开始.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读