検証リクエストの送信

ユーザーが自分のアカウントに電話番号を追加できるようになったので、サイトにログインする際にその電話番号を使って認証することができます。

Verify APIを使用するには、以下のように vonage gemをプロジェクトに追加する必要がある。また vonage gemを使用してAPIキーとシークレットを使用します。 .env ファイル。

アプリケーションの Gemfile:

gem 'vonage'
gem 'dotenv-rails', groups: [:development, :test]

次に .env ファイルをアプリケーションのルート・ディレクトリに作成し、APIキーとシークレットを設定します。 開発者ダッシュボード:

.env

VONAGE_API_KEY=your_api_key
VONAGE_API_SECRET=your_api_secret

追加 before_action あなたの ApplicationController これは、ユーザーが2要素認証を有効にしているかどうかをチェックするものです。二要素認証が有効な場合は、続行を許可する前にVerifyされることを確認してください:

app/controllers/application_controller.rb

before_action :verify_user!, unless: :devise_controller?
 
def verify_user!
  start_verification if requires_verification?
end

ユーザーに認証が必要かどうかを判断するには、ユーザーが電話番号で登録されているかどうか、および :verified セッションプロパティが設定されていない:

app/controllers/application_controller.rb

def requires_verification?
  session[:verified].nil? && !current_user.phone_number.blank?
end

検証プロセスを開始するには send_verification_request にある。 Vonage::Client オブジェクトに渡す必要がある。で設定した環境値によってすでに初期化されているので、APIキーとシークレットを渡す必要はない。 .env:

app/controllers/application_controller.rb

def start_verification
  result = Vonage::Client.new.verify.request(
    number: current_user.phone_number,
    brand: "Kittens and Co",
    sender_id: 'Kittens'
  )
  if result['status'] == '0'
    redirect_to edit_verification_path(id: result['request_id'])
  else
    sign_out current_user
    redirect_to :new_user_session, flash: {
      error: 'Could not verify your number. Please contact support.'
    }
  end
end

検証リクエストにウェブアプリケーションの名前を渡すことに注意してください。これはユーザが受け取るテキストメッセージで使用され、ユーザがどこから来たのかを認識できるようにします。

メッセージが正常に送信された場合は、ユーザーを受信したコードを入力するページにリダイレクトする必要があります。これを実行し、次のステップでコードが正しいかどうかをチェックします。

セキュリティとスパム防止のための二要素認証

Rubyアプリケーションに2faを実装する方法を学ぶ

手順
1
はじめに
2
基本アプリケーションの作成
3
電話番号必須
4
検証リクエストの送信
5
認証コードを確認する
6
お試しあれ!