decode_this 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6aa17a4625e0ee56d82538d48b8bf254365ce750
4
- data.tar.gz: d4b0835f60837ad36e7903b353e1995e7f7f1e6c
3
+ metadata.gz: cbc084f14c781c764c79bb29303fe62c129d218e
4
+ data.tar.gz: acf43fdffb4140b66d4e12f7096cb091419275a2
5
5
  SHA512:
6
- metadata.gz: 5879f3e3e4c7aa92b74e5809ca34eff17bc9b56132dcef11bebb1419f61c3108ad2336049f4d7b48d2da7e0d86e8fed1f00dafbe0a130cb86d63699db30920ac
7
- data.tar.gz: 033b2afcd0f6292a1eed1d9a9c7a2214cbb0e3598af8b30c0b75f29b334f0277627a956b3370e57def6f88d0aa28b1cec85190e8f84cce7c8ccb4db98e80d7be
6
+ metadata.gz: e49ae19c546f9d03b0bf958d56a5d0aa8f337d854757dee6be506dea702b83d0701ac43d52c90d37c5e0462448928f11c0f81679cad52fbd2c50fbeac7775e21
7
+ data.tar.gz: 6bbf93a100920d91b4a4fc4202586f40487ee902f30279668466e33de424d86876e4540ae473b89867d1904ebf6f7ff9b6d2f183f88ca66ed54614947576e7f7
data/.travis.yml ADDED
@@ -0,0 +1,5 @@
1
+ sudo: false
2
+ language: ruby
3
+ rvm:
4
+ - 2.2.5
5
+ before_install: gem install bundler
data/Rakefile CHANGED
@@ -2,3 +2,5 @@ require 'bundler/gem_tasks'
2
2
  require 'rspec/core/rake_task'
3
3
 
4
4
  RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task :default => :spec
data/Readme.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # DecodeThis
2
2
 
3
+ [![Build Status](https://travis-ci.org/myxaluch/decode_this.svg?branch=master)](https://travis-ci.org/myxaluch/decode_this)
4
+
3
5
  Simple decoder JWT token by given key
4
6
 
5
7
  ## Installation
@@ -23,14 +25,20 @@ Or install it yourself as:
23
25
  Configuration file scheme:
24
26
  ```
25
27
  test:
26
- algorightm: 'RS256'
28
+ algorithm: 'RS256'
27
29
  path: 'paht/to/keys'
28
30
  ```
29
31
 
30
32
  ```ruby
31
- token = DecodeThis.call(token, config_file: '/path/to/config.yml', env: :my_env)
32
- token['field1']
33
- token['field2']
33
+ payload = {
34
+ 'field1' => 'foo',
35
+ 'field2' => 'bar'
36
+ }
37
+ jwt_token = JWT.encode(payload, private_token, true, algorithm: algorithm)
38
+ ...
39
+ decoded_token = DecodeThis.decode(jwt_token, config_file: '/path/to/config.yml', env: :my_env, logger: logger)
40
+ token['field1'] = 'foo'
41
+ token['field2'] = 'bar'
34
42
  ```
35
43
 
36
44
  ## Contributing
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  class DecodeThis
3
- VERSION = '0.1.0'
3
+ VERSION = '0.1.1'
4
4
  end
data/lib/decode_this.rb CHANGED
@@ -8,25 +8,26 @@ class DecodeThis
8
8
  ConfigFileNotFoundError = Class.new(RuntimeError)
9
9
  DecodeError = Class.new(RuntimeError)
10
10
 
11
- attr_reader :token, :config_file, :env
11
+ attr_reader :token, :config_file, :env, :logger
12
12
 
13
- def initialize(token, config_file:, env:)
13
+ def initialize(token, config_file:, env:, logger: nil)
14
14
  @token = token
15
15
  @config_file = config_file
16
16
  @env = env
17
+ @logger = logger
17
18
  end
18
19
 
19
- def call
20
+ def decode
20
21
  JWT.decode(token, public_key, true, algorithm: algorithm).first
21
22
 
22
23
  rescue JWT::ExpiredSignature => err
23
- logger.warn("Expired JWT token #{err.class} - #{err.message}")
24
+ logger.warn("Expired JWT token #{err.class} - #{err.message}") if logger
24
25
  raise DecodeError
25
26
  rescue JWT::VerificationError => err
26
- logger.warn("Can't verify JWT token #{err.class} - #{err.message}")
27
+ logger.warn("Can't verify JWT token #{err.class} - #{err.message}") if logger
27
28
  raise DecodeError
28
29
  rescue JWT::DecodeError => err
29
- logger.warn("Can't decode JWT token '#{jwt_token}' #{err.class} - #{err.message}")
30
+ logger.warn("Can't decode JWT token '#{jwt_token}' #{err.class} - #{err.message}") if logger
30
31
  raise DecodeError
31
32
  end
32
33
 
@@ -6,7 +6,7 @@ RSpec.describe DecodeThis do
6
6
  let(:payload) { { field: 'foobar' } }
7
7
  let(:token) { encode(payload) }
8
8
 
9
- subject(:decoded_token) { described_class.new(token, config_file: config_path, env: :test).call }
9
+ subject(:decoded_token) { described_class.new(token, config_file: config_path, env: :test).decode }
10
10
 
11
11
  it 'decodes given token correctly' do
12
12
  payload.keys.each do |key|
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: decode_this
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sasha Kotov
@@ -18,6 +18,7 @@ extra_rdoc_files: []
18
18
  files:
19
19
  - ".gitignore"
20
20
  - ".rspec"
21
+ - ".travis.yml"
21
22
  - Gemfile
22
23
  - Rakefile
23
24
  - Readme.md