Module: ScimRails::Encoder

Extended by:
Encoder
Included in:
Encoder
Defined in:
lib/scim_rails/encoder.rb

Instance Method Summary collapse

Instance Method Details

#decode(token) ⇒ Object



17
18
19
20
21
22
23
# File 'lib/scim_rails/encoder.rb', line 17

def decode(token)
  verify = ScimRails.config.signing_algorithm != ScimRails::Config::ALGO_NONE

  JWT.decode(token, ScimRails.config.signing_secret, verify, algorithm: ScimRails.config.signing_algorithm).first
rescue JWT::VerificationError, JWT::DecodeError
  raise ScimRails::ExceptionHandler::InvalidCredentials
end

#encode(company) ⇒ Object



7
8
9
10
11
12
13
14
15
# File 'lib/scim_rails/encoder.rb', line 7

def encode(company)
  payload = {
    iat: Time.current.to_i,
    ScimRails.config.basic_auth_model_searchable_attribute =>
      company.public_send(ScimRails.config.basic_auth_model_searchable_attribute)
  }

  JWT.encode(payload, ScimRails.config.signing_secret, ScimRails.config.signing_algorithm)
end