jwt_extended 0.0.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.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/jwt_base.rb +44 -0
  3. metadata +43 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 47122700458f1031a1e7e6e698d6d58dd4d7939c0699735923c4e1541e60c5c6
4
+ data.tar.gz: 4719450548ee6bd73c8b94f6b09a270a0035a65e20a43f4e66a72ac497722932
5
+ SHA512:
6
+ metadata.gz: b3e1606a424b20ad38a2470e5c8a3d5f40f06f5ce2f55e3c44e18125321aaa4405ca949042b97b17e9d961052b035fad65c92f3ca56276b161c0d291f9123b10
7
+ data.tar.gz: 0cbfd14035844c1ca0239de77c576c620e6f012c5d2a2d86ef6b4165eeaef4a1e87a3d3d9c3891d5af1bb288927973a30e71f655809eaed3e0e4bbdd7a35382e
data/lib/jwt_base.rb ADDED
@@ -0,0 +1,44 @@
1
+ require 'JWT'
2
+ require 'active_support/duration'
3
+
4
+ module JWTBase
5
+ class JWTBase
6
+ def initialize(secret_key, access_exp, refresh_exp)
7
+ @@secret_key = secret_key
8
+ @@access_exp = access_exp
9
+ @@refresh_exp = refresh_exp
10
+ @@algorithm = 'HS256'
11
+
12
+ raise Time::TypeError unless @@access_exp.class == ActiveSupport::Duration
13
+ raise Time::TypeError unless @@refresh_exp.class == ActiveSupport::Duration
14
+ end
15
+
16
+ def create_access_token(payload)
17
+ raise JWT::EncodeError unless payload[:exp].nil? || payload[:type].nil?
18
+
19
+ payload[:exp] = (Time.now + @@access_exp).to_i
20
+ payload[:type] = :access_token
21
+ JWT.encode(payload, @@secret_key, @@algorithm)
22
+ end
23
+
24
+ def create_refresh_token(payload)
25
+ raise JWT::EncodeError unless payload[:exp].nil? || payload[:type].nil?
26
+
27
+ payload[:exp] = (Time.now + @@refresh_exp).to_i
28
+ payload[:type] = :refresh_token
29
+ JWT.encode(payload, @@secret_key, @@algorithm)
30
+ end
31
+
32
+ def get_jwt_payload(token)
33
+ token = token.to_s
34
+ begin
35
+ payload = JWT.decode(token, @@secret_key, @@algorithm)
36
+ rescue JWT::ExpiredSignature
37
+ return { 'err' => 410 }
38
+ rescue JWT::DecodeError
39
+ return nil
40
+ end
41
+ payload[0]
42
+ end
43
+ end
44
+ end
metadata ADDED
@@ -0,0 +1,43 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: jwt_extended
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - JeongWooYeong
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2020-01-09 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: A simple jwt gem
14
+ email: rubyonrails@kakao.com
15
+ executables: []
16
+ extensions: []
17
+ extra_rdoc_files: []
18
+ files:
19
+ - lib/jwt_base.rb
20
+ homepage:
21
+ licenses:
22
+ - MIT
23
+ metadata: {}
24
+ post_install_message:
25
+ rdoc_options: []
26
+ require_paths:
27
+ - lib
28
+ required_ruby_version: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ required_rubygems_version: !ruby/object:Gem::Requirement
34
+ requirements:
35
+ - - ">="
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ requirements: []
39
+ rubygems_version: 3.0.3
40
+ signing_key:
41
+ specification_version: 4
42
+ summary: Hola!
43
+ test_files: []