decode_this 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
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