main
 1# frozen_string_literal: true
 2
 3class MfasController < ApplicationController
 4  skip_before_action :authenticate_mfa!
 5
 6  def new; end
 7
 8  def create
 9    if current_user.mfa.authenticate(secure_params[:code])
10      reset_session
11      session[:user_session_key] = Current.user_session.key
12      session[:mfa] = { issued_at: Time.current.utc.to_i }
13      redirect_to response_path
14    else
15      redirect_to new_mfa_path, error: "Invalid code"
16    end
17  end
18
19  private
20
21  def secure_params
22    params.require(:mfa).permit(:code)
23  end
24end