zaikio-jwt_auth 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
  SHA256:
3
- metadata.gz: 6de8bcc2c7ef22d052c626bc463789dec9dba4c6d4e977ee543973736994440b
4
- data.tar.gz: c3c1b661b388fdef157831bccd203616913456f594762c4d0513967ebde8c468
3
+ metadata.gz: fc049533f5e0a82a2fa15f189514a997ae95b2a5cda50a8142d28d4776bacba3
4
+ data.tar.gz: 9e0cd0c5aee054152abc83dfa717711ae0f3b4aedd53a1eae321091c3c2b0a9f
5
5
  SHA512:
6
- metadata.gz: 694d2a013c3a8e41dc8b03a11b0817fadd8e636cd80809a4d66c04285b2ecfe1e2dcaaf919f7735556a001d6d6feb93c4541a1f61bce16689e117fbabe6bf55f
7
- data.tar.gz: 44c62f3c08102efb72e0ca8951562d02481bf5882742cd75ff4a27f722d80713f939c17cf05271cd870ef8b5fae3c00ad534b756aa981c32399e634a366b674d
6
+ metadata.gz: dd1cf4ac348ab2fba0d05a94e3accf3db35f3170043bf51953810ef3d19538e9be1ecd2a130f921f22bd1b4e5351b051b5c92f9c7f47b28b5bbb4cc4f04f036a
7
+ data.tar.gz: 9c0725178d406e5ce35c8af71b0c5f480739a65579b5c65d3fc8d0e79cba9714af14f64eb1e3e777f925f18d8314a8f61646dfac60d93eaf82d19c2cb5a9ac32
@@ -34,9 +34,7 @@ module Zaikio
34
34
 
35
35
  module InstanceMethods
36
36
  def authenticate_by_jwt
37
- unless jwt_from_auth_header
38
- render(status: :unauthorized, plain: "Please authenticate via Zaikio JWT") && return
39
- end
37
+ render_error("no_jwt_passed", status: :unauthorized) && return unless jwt_from_auth_header
40
38
 
41
39
  token_data = TokenData.new(jwt_payload)
42
40
 
@@ -48,9 +46,9 @@ module Zaikio
48
46
 
49
47
  send(:after_jwt_auth, token_data) if respond_to?(:after_jwt_auth)
50
48
  rescue JWT::ExpiredSignature
51
- render(status: :forbidden, plain: "JWT expired") && (return)
49
+ render_error("jwt_expired") && (return)
52
50
  rescue JWT::DecodeError
53
- render(status: :forbidden, plain: "Invalid JWT") && (return)
51
+ render_error("invalid_jwt") && (return)
54
52
  end
55
53
 
56
54
  private
@@ -71,7 +69,7 @@ module Zaikio
71
69
  return
72
70
  end
73
71
 
74
- render(status: :forbidden, plain: "Invalid scope")
72
+ render_error("unpermitted_scope")
75
73
  end
76
74
 
77
75
  def show_error_if_authorize_by_jwt_subject_type_fails(token_data)
@@ -80,13 +78,13 @@ module Zaikio
80
78
  return
81
79
  end
82
80
 
83
- render(status: :forbidden, plain: "Unallowed subject type")
81
+ render_error("unpermitted_subject")
84
82
  end
85
83
 
86
84
  def show_error_if_token_is_blacklisted(token_data)
87
85
  return unless blacklisted_token_ids.include?(token_data.jti)
88
86
 
89
- render(status: :forbidden, plain: "Invalid token")
87
+ render_error("invalid_jwt")
90
88
  end
91
89
 
92
90
  def blacklisted_token_ids
@@ -96,6 +94,10 @@ module Zaikio
96
94
 
97
95
  DirectoryCache.fetch("api/v1/blacklisted_token_ids.json", expires_after: 5.minutes)["blacklisted_token_ids"]
98
96
  end
97
+
98
+ def render_error(error, status: :forbidden)
99
+ render(status: status, json: { "errors" => [error] })
100
+ end
99
101
  end
100
102
  end
101
103
  end
@@ -1,5 +1,5 @@
1
1
  module Zaikio
2
2
  module JWTAuth
3
- VERSION = "0.1.0".freeze
3
+ VERSION = "0.1.1".freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zaikio-jwt_auth
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
  - Crispy Mountain GmbH