Class: DecodeThis

Inherits:
Object
  • Object
show all
Defined in:
lib/decode_this.rb,
lib/decode_this/version.rb

Constant Summary collapse

ConfigFileNotFoundError =
Class.new(RuntimeError)
DecodeError =
Class.new(RuntimeError)
VERSION =
'0.1.3'

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(token, config_file:, env:, logger: nil) ⇒ DecodeThis

Returns a new instance of DecodeThis.



13
14
15
16
17
18
# File 'lib/decode_this.rb', line 13

def initialize(token, config_file:, env:, logger: nil)
  @token = token
  @config_file = config_file
  @env = env
  @logger = logger
end

Instance Attribute Details

#config_fileObject (readonly)

Returns the value of attribute config_file.



11
12
13
# File 'lib/decode_this.rb', line 11

def config_file
  @config_file
end

#envObject (readonly)

Returns the value of attribute env.



11
12
13
# File 'lib/decode_this.rb', line 11

def env
  @env
end

#loggerObject (readonly)

Returns the value of attribute logger.



11
12
13
# File 'lib/decode_this.rb', line 11

def logger
  @logger
end

#tokenObject (readonly)

Returns the value of attribute token.



11
12
13
# File 'lib/decode_this.rb', line 11

def token
  @token
end

Instance Method Details

#decodeObject



20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/decode_this.rb', line 20

def decode
  JWT.decode(token, public_key, true, algorithm: algorithm).first

rescue JWT::ExpiredSignature => err
  logger.warn("Expired JWT token #{err.class} - #{err.message}") if logger
  raise DecodeError
rescue JWT::VerificationError => err
  logger.warn("Can't verify JWT token #{err.class} - #{err.message}") if logger
  raise DecodeError
rescue JWT::DecodeError => err
  logger.warn("Can't decode JWT token '#{jwt_token}' #{err.class} - #{err.message}") if logger
  raise DecodeError
end