jwt_extended 0.0.4 → 0.1.0

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 +4 -4
  2. data/lib/jwt_base.rb +18 -17
  3. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 377ef2309102c8f724790e4bb9421e8520ad3ff1d175cd3b0f725e16c418a646
4
- data.tar.gz: cc820f3962c887c04960902c5915d98368fa8544d4117e47a02f0ed097c97af0
3
+ metadata.gz: d8653dae8dd88f4218aa3bba25281cbc90658c9e67343326d369de93d047b947
4
+ data.tar.gz: e6307b74238996dea7f1ad0c31644f1d19501a0a02f2bc1d0e209ee4ef0a179d
5
5
  SHA512:
6
- metadata.gz: 9bddc511e4719ce7c5fd8d1353e7bb5754065d6a838ddc57d308eefe69ad21e64b4347873e940cae8f8c746d3cfa4232f642b43dbb888abab268736c3b763c2d
7
- data.tar.gz: 93a86965979888ade33b964b74e86d3cb2405ab3cc227c6d0e72a3f5a8edf366096905eca9a7be7b48378387e96c3bb790f8e338b9b67590225c79170de61f8f
6
+ metadata.gz: a3d26a82e2b7c936b55971330e087448efab14b0149b84213245b85f5394a2d12c5227206736d510fae6ab2aaf0b2c1e5592624f4fb330a3dd7a44be0e842fbd
7
+ data.tar.gz: 329a63df2e3728d2eec8e083599a90a76010eec029954bd2a765fc1932fab11f5d354026f9115cf7c2dda260c701caa698c1066b801eb6e21c3619de4884a562
data/lib/jwt_base.rb CHANGED
@@ -4,37 +4,38 @@ require 'action_controller/api'
4
4
 
5
5
 
6
6
  class JWTBase < ActionController::API
7
+ attr_reader :payload
8
+
7
9
  def initialize(secret_key, access_exp, refresh_exp)
8
- @@secret_key = secret_key
9
- @@access_exp = access_exp
10
- @@refresh_exp = refresh_exp
11
- @@algorithm = 'HS256'
10
+ @secret_key = secret_key
11
+ @access_exp = access_exp
12
+ @refresh_exp = refresh_exp
13
+ @algorithm = 'HS256'
12
14
 
13
- raise Time::TypeError unless @@access_exp.class == ActiveSupport::Duration
14
- raise Time::TypeError unless @@refresh_exp.class == ActiveSupport::Duration
15
+ raise Time::TypeError unless @access_exp.class == ActiveSupport::Duration
16
+ raise Time::TypeError unless @refresh_exp.class == ActiveSupport::Duration
15
17
  end
16
18
 
17
19
  def create_access_token(payload)
18
20
  raise JWT::EncodeError unless payload[:exp].nil? || payload[:type].nil?
19
21
 
20
- payload[:exp] = (Time.now + @@access_exp).to_i
22
+ payload[:exp] = (Time.now + @access_exp).to_i
21
23
  payload[:type] = :access_token
22
- JWT.encode(payload, @@secret_key, @@algorithm)
24
+ JWT.encode(payload, @secret_key, @algorithm)
23
25
  end
24
26
 
25
27
  def create_refresh_token(payload)
26
28
  raise JWT::EncodeError unless payload[:exp].nil? || payload[:type].nil?
27
29
 
28
- payload[:exp] = (Time.now + @@refresh_exp).to_i
30
+ payload[:exp] = (Time.now + @refresh_exp).to_i
29
31
  payload[:type] = :refresh_token
30
- JWT.encode(payload, @@secret_key, @@algorithm)
32
+ JWT.encode(payload, @secret_key, @algorithm)
31
33
  end
32
34
 
33
- def token_required
34
- token = request.authorization.split(' ')
35
+ def token_required(token)
35
36
  return { error: :unauthorized } unless token[0] == 'Bearer'
36
37
 
37
- payload = JWT.decode(token[1], @@secret_key, @@algorithm)[0]
38
+ payload = JWT.decode(token[1], @secret_key, @algorithm)[0]
38
39
  rescue JWT::DecodeError || NoMethodError
39
40
  { error: :unauthorized }
40
41
  rescue JWT::ExpiredSignature
@@ -43,16 +44,16 @@ class JWTBase < ActionController::API
43
44
  payload
44
45
  end
45
46
 
46
- def jwt_required
47
- payload = token_required
47
+ def jwt_required(token)
48
+ payload = token_required(token)
48
49
  return render status: payload[:error] if payload[:error]
49
50
  return render status: :forbidden unless payload['type'] == 'access_token'
50
51
 
51
52
  @payload
52
53
  end
53
54
 
54
- def refresh_token_required
55
- payload = token_required
55
+ def refresh_token_required(token)
56
+ payload = token_required(token)
56
57
  return render status: payload[:error] if payload[:error]
57
58
  return render status: :forbidden unless payload['type'] == 'refresh_token'
58
59
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jwt_extended
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - JeongWooYeong