jwt_extended 0.0.4 → 0.1.4

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 +24 -28
  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: 26efda1cebf41e3d2cb31b740ca799ebd68cab0017c6b3961ef22cb9e5d64a84
4
+ data.tar.gz: f7b5dd31d1f96f10c2f9dbd4eaf54dd27321228e32cd820692eae87cf83c000f
5
5
  SHA512:
6
- metadata.gz: 9bddc511e4719ce7c5fd8d1353e7bb5754065d6a838ddc57d308eefe69ad21e64b4347873e940cae8f8c746d3cfa4232f642b43dbb888abab268736c3b763c2d
7
- data.tar.gz: 93a86965979888ade33b964b74e86d3cb2405ab3cc227c6d0e72a3f5a8edf366096905eca9a7be7b48378387e96c3bb790f8e338b9b67590225c79170de61f8f
6
+ metadata.gz: 16d2248e3d110e2852463e89c4f01f1a7c8a25a2def4f12a630541a24ff9db462c263feff0915d6ec24b284e23334d04ef60a5dc120d3c64398e5b8e2c205397
7
+ data.tar.gz: 7d6e07b8adb8f57e1277a55745b359738e79666697b342a8468f5456a86905f37b55c39ee93a6501819ee678097f22da89047c6f1a4f5ff20ecbba86410c0cb7
@@ -4,59 +4,55 @@ require 'action_controller/api'
4
4
 
5
5
 
6
6
  class JWTBase < ActionController::API
7
+
7
8
  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'
9
+ @secret_key = secret_key
10
+ @access_exp = access_exp
11
+ @refresh_exp = refresh_exp
12
+ @algorithm = 'HS256'
12
13
 
13
- raise Time::TypeError unless @@access_exp.class == ActiveSupport::Duration
14
- raise Time::TypeError unless @@refresh_exp.class == ActiveSupport::Duration
14
+ raise Time::TypeError unless @access_exp.class == ActiveSupport::Duration
15
+ raise Time::TypeError unless @refresh_exp.class == ActiveSupport::Duration
15
16
  end
16
17
 
17
18
  def create_access_token(payload)
18
19
  raise JWT::EncodeError unless payload[:exp].nil? || payload[:type].nil?
19
20
 
20
- payload[:exp] = (Time.now + @@access_exp).to_i
21
+ payload[:exp] = (Time.now + @access_exp).to_i
21
22
  payload[:type] = :access_token
22
- JWT.encode(payload, @@secret_key, @@algorithm)
23
+ JWT.encode(payload, @secret_key, @algorithm)
23
24
  end
24
25
 
25
26
  def create_refresh_token(payload)
26
27
  raise JWT::EncodeError unless payload[:exp].nil? || payload[:type].nil?
27
28
 
28
- payload[:exp] = (Time.now + @@refresh_exp).to_i
29
+ payload[:exp] = (Time.now + @refresh_exp).to_i
29
30
  payload[:type] = :refresh_token
30
- JWT.encode(payload, @@secret_key, @@algorithm)
31
+ JWT.encode(payload, @secret_key, @algorithm)
31
32
  end
32
33
 
33
- def token_required
34
- token = request.authorization.split(' ')
35
- return { error: :unauthorized } unless token[0] == 'Bearer'
36
-
37
- payload = JWT.decode(token[1], @@secret_key, @@algorithm)[0]
38
- rescue JWT::DecodeError || NoMethodError
34
+ def token_required(token)
35
+ payload = JWT.decode(token, @secret_key, @algorithm)[0]
36
+ rescue JWT::DecodeError || NoMethodError || JWT::ExpiredSignature
39
37
  { error: :unauthorized }
40
- rescue JWT::ExpiredSignature
41
- { error: :gone }
42
38
  else
43
39
  payload
44
40
  end
45
41
 
46
- def jwt_required
47
- payload = token_required
48
- return render status: payload[:error] if payload[:error]
49
- return render status: :forbidden unless payload['type'] == 'access_token'
42
+ def jwt_required(token)
43
+ payload = token_required(token)
44
+ return { status: payload[:error] } if payload[:error]
45
+ return { status: :forbidden } unless payload['type'] == 'access_token'
50
46
 
51
- @payload
47
+ payload
52
48
  end
53
49
 
54
- def refresh_token_required
55
- payload = token_required
56
- return render status: payload[:error] if payload[:error]
57
- return render status: :forbidden unless payload['type'] == 'refresh_token'
50
+ def refresh_token_required(token)
51
+ payload = token_required(token)
52
+ return { status: payload[:error] } if payload[:error]
53
+ return { status: :forbidden } unless payload['type'] == 'refresh_token'
58
54
 
59
- @payload
55
+ payload
60
56
  end
61
57
  end
62
58
 
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.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - JeongWooYeong