検証リクエストの送信
ユーザーが自分のアカウントに電話番号を追加できるようになったので、サイトにログインする際にその電話番号を使って認証することができます。
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を実装する方法を学ぶ