lib/decode_this.rb in decode_this-0.1.3 vs lib/decode_this.rb in decode_this-0.1.4
- old
+ new
@@ -1,58 +1,3 @@
# frozen_string_literal: true
require 'decode_this/version'
-require 'huyettings'
-require 'openssl'
-require 'jwt'
-
-class DecodeThis
- ConfigFileNotFoundError = Class.new(RuntimeError)
- DecodeError = Class.new(RuntimeError)
-
- attr_reader :token, :config_file, :env, :logger
-
- def initialize(token, config_file:, env:, logger: nil)
- @token = token
- @config_file = config_file
- @env = env
- @logger = logger
- end
-
- 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
-
- private
-
- def jwt_config
- @jwt_config ||= Huyettings.new(config_file, env)
- end
-
- def algorithm
- jwt_config.algorithm
- end
-
- def public_key
- private_key.public_key
- end
-
- def private_key
- OpenSSL::PKey::RSA.new(pem)
- end
-
- def pem
- keys_absolute_path = File.expand_path(jwt_config.path)
-
- raise ConfigFileNotFoundError.new("Cannot found file in #{jwt_config.path}") unless File.readable?(keys_absolute_path)
- File.read(jwt_config.path)
- end
-end
+require 'decode_this/decoder'