かつて、電話番号を確認する作業に直面しました。 そして、GitHubに星がない(
そしてハブに招待する )ので、宝石を作ることにしました。

Twilioサービスは、便利で安価なため、SMSゲートウェイとして選択されました。 このビジネスに数時間費やした後、私にとって非常に便利な宝石であることが判明しました。
それをインストールするには、gemfileに追加する必要があります。
gem "twilio_phone_verification"
次に、コマンドを実行します。
bundle install
そして
rails g twilio_phone_verification:install [USER_CLASS]
USER_CLASSは、電話チェックを追加するクラスです。
注:テキストメッセージ "Hello、{{name}} ..."を送信できるように、このクラスには名前フィールドが必要です 。 これにより、2つのファイルが作成されます。
config / initializers / twilio_phone_verification.rb設定ファイル
。Twilioからキーと電話番号を入力する必要があります
TwilioPhoneVerification.configure do |config| config.account_sid = ENV.fetch("TWILIO_ACCOUNT_SID")
および
db / migrate / 000000000000000_add_phone_to_users.rb移行により、必要なフィールドが作成されます。
class AddPhoneToUsers < ActiveRecord::Migration[5.0] def self.up add_column :users, :phone, :string add_column :users, :phone_confirmation_token, :string add_column :users, :phone_confirmed_at, :datetime add_column :users, :phone_confirmation_sent_at, :datetime add_index :users, :phone, unique: true end def self.down remove_column :users, :phone remove_column :users, :phone_confirmation_token remove_column :users, :phone_confirmed_at remove_column :users, :phone_confirmation_sent_at end end
次に、コマンドを実行します。
rails db:migrate
そして、必要なメソッドが追加されるようにモデルにコンサーンを追加します。
class User < ActiveRecord::Base include TwilioPhoneVerification::Phonable end
これにより、4つの主なメソッドが追加されます
。phone_confirmed? 電話が確認されたかどうかに応じて、
trueまたは
falseを返し
ます 。
send_phone_confirmationはコードを生成し、
テキストメッセージを送信し
ます 。 SMSが送信された場合は
{success:true}を返し、送信されなかった場合は
falseを返します。 新しいSMSが生成されるたび。 また、コードは1分間に1回しか送信できません。
confirm_phone_by_code(code)は
trueを返し、コードが正しい場合は電話番号を検証し、そうでない場合は
falseを検証し
ます 。
confirm_phoneは、コードを確認せずに電話番号を検証します。
メソッドが
falseを返す場合、エラーは
.errorsに追加され
ます 。
2つのタイムスタンプもあります。
電話が確認されたときの
phone_confirmed_at最後のSMSが送信されたときの
phone_confirmation_sent_atGithubリポジトリ以上です。 ご清聴ありがとうございました。