6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
# File 'lib/devise_yubikey_database_authenticatable/strategy.rb', line 6
def authenticate!
resource = valid_password? && mapping.to.find_for_yubikey_database_authentication(authentication_hash)
if validate(resource) {resource.valid_password?(password)}
if resource.useyubikey == true
if params[:user][:yubiotp].blank?
fail('Yubikey OTP Required for this user.')
else
if resource.validate_yubikey(params[:user][:yubiotp]) && (resource.registeredyubikey == params[:user][:yubiotp][0..11])
resource.after_database_authentication
success!(resource)
else
fail('Invalid Yubikey OTP.')
end
end
else
success!(resource)
end
else
fail(:invalid)
end
end
|