Class: RailsBase::Authentication::SingleSignOnVerify

Inherits:
ServiceBase
  • Object
show all
Defined in:
app/services/rails_base/authentication/single_sign_on_verify.rb

Instance Method Summary collapse

Methods inherited from ServiceBase

inherited, #internal_validate, #service_base_logging

Methods included from ServiceLogging

#aletered_message, #class_name, #log, #log_prefix, #logger, #service_id

Instance Method Details

#callObject



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'app/services/rails_base/authentication/single_sign_on_verify.rb', line 7

def call
  datum = find_data_point
  context.data = datum
  if bypass
    context.should_fail = !datum[:valid]
    context.url_redirect = datum[:extra] || RailsBase.url_routes.authenticated_root_path
    log(level: :info, msg: "sending full data point. bypass set to true")
    return
  end

  context. = false
  if datum[:valid]
    context. = true
    context.url_redirect = datum[:extra] || RailsBase.url_routes.authenticated_root_path
    context.user = datum[:user]
  else
    context.url_redirect = datum[:extra] || RailsBase.url_routes.unauthenticated_root_path
    context.fail!(message: "Authorization token error: #{datum[:invalid_reason].join(',')}")
  end
end

#find_data_pointObject



28
29
30
31
32
33
34
35
# File 'app/services/rails_base/authentication/single_sign_on_verify.rb', line 28

def find_data_point
  params = {
    data: data,
    reason: reason,
    access_count: !(bypass || false)
  }
  ShortLivedData.find_datum(**params)
end

#validate!Object



37
38
39
40
# File 'app/services/rails_base/authentication/single_sign_on_verify.rb', line 37

def validate!
  raise "Expected data to be a String. Received #{data.class}" unless data.is_a? String
  raise "Expected reason to be a String. Received #{reason.class}" unless reason.is_a? String
end