Class: RailsBase::MfaAuthController
- Inherits:
-
RailsBaseApplicationController
- Object
- ActionController::Base
- RailsBaseApplicationController
- RailsBase::MfaAuthController
- Defined in:
- app/controllers/rails_base/mfa_auth_controller.rb
Constant Summary
Constants included from CaptureReferenceHelper
CaptureReferenceHelper::CAPTURE_ACTION_NAME, CaptureReferenceHelper::CAPTURE_CONTROLLER_PATH, CaptureReferenceHelper::CAPTURE_REFERRED_PATH
Constants included from AppearanceHelper
AppearanceHelper::APPEARANCE_MODE_ACTUAL_COOKIE, AppearanceHelper::APPEARANCE_MODE_COOKIE, AppearanceHelper::APPEARANCE_TEXT_CLASS, AppearanceHelper::VIEWPORT_EXTRA_LARGE, AppearanceHelper::VIEWPORT_EXTRA_SMALL, AppearanceHelper::VIEWPORT_LARGE, AppearanceHelper::VIEWPORT_MEDIUM, AppearanceHelper::VIEWPORT_MOBILE_MAX, AppearanceHelper::VIEWPORT_SIZES, AppearanceHelper::VIEWPORT_SMALL
Constants included from ApplicationHelper
ApplicationHelper::TIMEZONE_OFFSET_COOKIE, ApplicationHelper::TIMEZONE_SESSION_NAME
Instance Method Summary collapse
-
#mfa_code ⇒ Object
GET /mfa_verify.
-
#mfa_code_verify ⇒ Object
POST /mfa_verify.
-
#resend_mfa ⇒ Object
POST /mfa_verify.
- #validate_token ⇒ Object
Methods inherited from RailsBaseApplicationController
#admin_impersonation_session?, #admin_reset_impersonation_session!, #admin_user?, #capture_admin_action, #is_timeout_error?, #populate_admin_actions, #set_time_zone
Methods included from CaptureReferenceHelper
#authenticate_user!, #capture_and_clear_reference_redirect!, #capture_clear_reference_from_sesssion!, #capture_reference, #redirect_from_reference, #reference_redirect, #skip_capture_reference!, #skip_capture_reference?, #use_capture_reference?
Methods included from AppearanceHelper
#appearance_mode_drop_down, #appearance_text_class, #footer_mode_case, #force_sticky_mode!
Methods included from ApplicationHelper
#admin_reset_session!, #browser, #is_mobile?, #is_safari?, #mfa_fallback?
Instance Method Details
#mfa_code ⇒ Object
GET /mfa_verify
6 7 8 |
# File 'app/controllers/rails_base/mfa_auth_controller.rb', line 6 def mfa_code @masked_phone = User.find(@token_verifier.user_id).masked_phone end |
#mfa_code_verify ⇒ Object
POST /mfa_verify
11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'app/controllers/rails_base/mfa_auth_controller.rb', line 11 def mfa_code_verify mfa_validity = RailsBase::Authentication::MfaValidator.call(params: params, session_mfa_user_id: @token_verifier.user_id) if mfa_validity.failure? redirect_to(mfa_validity.redirect_url, alert: mfa_validity.) return end mfa_validity.user.set_last_mfa_login! sign_in(mfa_validity.user) redirect_to RailsBase.url_routes.authenticated_root_path, notice: "Welcome #{mfa_validity.user.full_name}" end |
#resend_mfa ⇒ Object
POST /mfa_verify
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'app/controllers/rails_base/mfa_auth_controller.rb', line 25 def resend_mfa user = User.find(@token_verifier.user_id) mfa_token = RailsBase::Authentication::SendLoginMfaToUser.call(user: user) if mfa_token.failure? flash[:error] = mfa_token. session[:mfa_randomized_token] = nil redirect_to RailsBase.url_routes.new_user_session_path, email: params.dig(:user,:email), alert: mfa_token. return end expired_at = Time.zone.parse(@token_verifier.expires_at) session[:mfa_randomized_token] = RailsBase::Authentication::MfaSetEncryptToken.call(user: user, expires_at: expired_at).encrypted_val redirect_to RailsBase.url_routes.mfa_code_path, notice: "MFA has been sent via SMS to number on file" end |
#validate_token ⇒ Object
41 42 43 44 45 46 47 48 |
# File 'app/controllers/rails_base/mfa_auth_controller.rb', line 41 def validate_token @token_verifier = RailsBase::Authentication::SessionTokenVerifier.call(mfa_randomized_token: session[:mfa_randomized_token]) return if @token_verifier.success? redirect_to RailsBase.url_routes.new_user_session_path, alert: @token_verifier. return false end |