Module: LinkedRails::Auth::OtpHelper

Included in:
OtpBase, OtpBase
Defined in:
app/helpers/linked_rails/auth/otp_helper.rb

Instance Method Summary collapse

Instance Method Details

#handle_expired_sessionObject



6
7
8
# File 'app/helpers/linked_rails/auth/otp_helper.rb', line 6

def handle_expired_session
  raise LinkedRails::Auth::Errors::Expired, I18n.t('messages.otp_secrets.expired')
end

#owner_from_session(session_param) ⇒ Object



23
24
25
26
27
# File 'app/helpers/linked_rails/auth/otp_helper.rb', line 23

def owner_from_session(session_param)
  user_id = session_from_param(session_param)['user_id']

  LinkedRails.otp_owner_class.find_by(id: user_id) if user_id
end

#session_from_param(session_param) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
# File 'app/helpers/linked_rails/auth/otp_helper.rb', line 10

def session_from_param(session_param)
  return {} unless session_param

  JWT.decode(
    session_param,
    Doorkeeper::JWT.configuration.secret_key,
    true,
    algorithms: [Doorkeeper::JWT.configuration.encryption_method.to_s.upcase]
  ).first || {}
rescue JWT::ExpiredSignature
  handle_expired_session
end