Class: Devise::DuoSecurityController

Inherits:
DeviseController
  • Object
show all
Includes:
Controllers::Helpers, Duo
Defined in:
app/controllers/devise/duo_security_controller.rb

Constant Summary

Constants included from Duo

Duo::AKEY_LEN, Duo::APP_EXPIRE, Duo::APP_PREFIX, Duo::AUTH_PREFIX, Duo::DUO_EXPIRE, Duo::DUO_PREFIX, Duo::ERR_AKEY, Duo::ERR_IKEY, Duo::ERR_SKEY, Duo::ERR_USER, Duo::IKEY_LEN, Duo::SKEY_LEN

Instance Method Summary collapse

Methods included from Duo

#sign_request, #verify_response

Instance Method Details

#showObject



11
12
13
14
# File 'app/controllers/devise/duo_security_controller.rb', line 11

def show
  @host = DuoSecurity.configuration.host
  @signature = Duo.sign_request(DuoSecurity.configuration.ikey, DuoSecurity.configuration.skey, DuoSecurity.configuration.app_secret, @resource.email)
end

#verifyObject



16
17
18
19
20
21
22
23
24
# File 'app/controllers/devise/duo_security_controller.rb', line 16

def verify
  authenticated_username = Duo.verify_response(DuoSecurity.configuration.ikey, DuoSecurity.configuration.skey, DuoSecurity.configuration.app_secret, params[:sig_response])
  if authenticated_username
    warden.session(resource_name)['duo_authenticated'] = true
    redirect_to session["user_return_to"] || root_path
  else
    redirect_to send("#{resource_name}_duo_security_path")
  end
end