class Trusona::TruCodeConfig

Public Instance Methods

relying_party_id() click to toggle source
# File lib/trusona/tru_code_config.rb, line 7
def relying_party_id
  jwt     = Trusona.config.token ||
            raise_token_error
  middle  = jwt_body(jwt)
  decoded = Base64.decode64(middle)
  parsed = parse_jwt(decoded)
  relying_party_id = extract_subject(parsed)

  relying_party_id
end

Private Instance Methods

extract_subject(parsed) click to toggle source
# File lib/trusona/tru_code_config.rb, line 32
def extract_subject(parsed)
  raise_token_error('Subject is Missing.') if parsed['sub'].nil?
  parsed['sub']
end
jwt_body(jwt) click to toggle source
# File lib/trusona/tru_code_config.rb, line 20
def jwt_body(jwt)
  split_jwt = jwt.split('.')
  raise_token_error if split_jwt.empty? || split_jwt[1].nil?
  split_jwt[1]
end
parse_jwt(decoded) click to toggle source
# File lib/trusona/tru_code_config.rb, line 26
def parse_jwt(decoded)
  JSON.parse(decoded)
rescue JSON::ParserError
  raise_token_error('JWT Format is Invalid.')
end
raise_token_error(msg = 'API Token is missing.') click to toggle source
# File lib/trusona/tru_code_config.rb, line 37
def raise_token_error(msg = 'API Token is missing.')
  raise(Trusona::ConfigurationError, msg)
end