Class: Account::TwoFactorsController

Inherits:
ApplicationController
  • Object
show all
Defined in:
app/controllers/account/two_factors_controller.rb

Instance Method Summary collapse

Instance Method Details

#createObject



22
23
24
25
26
27
# File 'app/controllers/account/two_factors_controller.rb', line 22

def create
  @backup_codes = current_user.generate_otp_backup_codes!
  @user = current_user

  current_user.update(otp_secret: User.generate_otp_secret)
end

#destroyObject



29
30
31
32
33
34
35
# File 'app/controllers/account/two_factors_controller.rb', line 29

def destroy
  @user = current_user
  current_user.update(
    otp_required_for_login: false,
    otp_secret: nil
  )
end

#verifyObject



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'app/controllers/account/two_factors_controller.rb', line 6

def verify
  @user = current_user

  otp_code = params["user"]["otp_attempt"]
  @verified = current_user.validate_and_consume_otp!(otp_code)

  if @verified
    current_user.update(otp_required_for_login: true)
  else
    current_user.update(
      otp_required_for_login: false,
      otp_secret: nil
    )
  end
end