clerk-sdk-ruby 2.9.0 → 2.10.0.beta1

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
  SHA256:
3
- metadata.gz: cbaa98cd305b04c0b904e1a2c86d3443f366aa9dba7f71c5c0a0bc7696da3934
4
- data.tar.gz: da3b5c3910d7d04453ce910a1e56a5d3057e7b6971aa9e25944e45ac4552d99f
3
+ metadata.gz: c0081a8408ee5ff5693b6f12a953ec361d9699784dd4c950c02123419a7dfac6
4
+ data.tar.gz: f32a7f5aab84fd626a6f3944e40ab6abb9a1f9041231cbf0327afb5ed59b112d
5
5
  SHA512:
6
- metadata.gz: bbede149e1d228a36ca7bcc38dee963498364f770c1facda036b14a183ef7abd0281b627399db911b44c73d22247969845b53db23808c0631628b550a630a69d
7
- data.tar.gz: 5b4156f656adf0db7b92a718fd171b6d6b861624df5f9f1b56dd0b6c25ed8b2b18a4af73bb771e79c1ae22420a06beaa486941549757a4a3a858f527f17a421b
6
+ metadata.gz: 6b987d81b469ca882c77c2c50d572d33390e4ca1984d6f60b969cba65205d37b625abc26b639a6484277adab595564df20aa1d8aa50d1d9ba62b4a6c48675ab5
7
+ data.tar.gz: 1a26cb6a57a73080e586ab68a615b2c5db363c6eac5856a2c47c52c9d95ee11d5f0a5668c9fbd205fe8bce28f5e8f3d19e7f856f8b7c12ce5b37cd1e5253f30c
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  ## unreleased
2
2
 
3
+ ## 2.10.0.beta1 - 2023-03-08
4
+
5
+ - fix: Change signed-out & interstitial request state conditions [https://github.com/clerkinc/clerk-sdk-ruby/pull/30]
6
+
3
7
  ## 2.9.0
4
8
 
5
9
  Identical to 2.9.0.beta3
data/CODEOWNERS ADDED
@@ -0,0 +1 @@
1
+ * @clerkinc/backend-team
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- clerk-sdk-ruby (2.9.0.beta3)
4
+ clerk-sdk-ruby (2.10.0.beta1)
5
5
  concurrent-ruby (~> 1.1)
6
6
  faraday (~> 1.4.1)
7
7
  jwt (~> 2.5)
@@ -10,7 +10,7 @@ GEM
10
10
  remote: https://rubygems.org/
11
11
  specs:
12
12
  byebug (11.1.3)
13
- concurrent-ruby (1.1.10)
13
+ concurrent-ruby (1.2.2)
14
14
  faraday (1.4.3)
15
15
  faraday-em_http (~> 1.0)
16
16
  faraday-em_synchrony (~> 1.0)
@@ -24,14 +24,15 @@ GEM
24
24
  faraday-excon (1.1.0)
25
25
  faraday-net_http (1.0.1)
26
26
  faraday-net_http_persistent (1.2.0)
27
- jwt (2.6.0)
28
- minitest (5.17.0)
29
- multipart-post (2.2.3)
27
+ jwt (2.7.0)
28
+ minitest (5.18.0)
29
+ multipart-post (2.3.0)
30
30
  rake (13.0.6)
31
31
  ruby2_keywords (0.0.5)
32
32
  timecop (0.9.6)
33
33
 
34
34
  PLATFORMS
35
+ arm64-darwin-22
35
36
  universal-darwin-21
36
37
  x86_64-linux
37
38
 
@@ -124,8 +124,12 @@ module Clerk
124
124
  return signed_out(env) # malformed JSON authorization header
125
125
  end
126
126
 
127
- token = verify_token(header_token)
128
- return signed_in(env, token, header_token) if token
127
+ begin
128
+ token = verify_token(header_token)
129
+ return signed_in(env, token, header_token) if token
130
+ rescue JWT::ExpiredSignature, JWT::InvalidIatError
131
+ unknown(interstitial: false)
132
+ end
129
133
 
130
134
  # Clerk.js should refresh the token and retry
131
135
  return unknown(interstitial: false)
@@ -162,10 +166,15 @@ module Clerk
162
166
  return signed_out(env)
163
167
  end
164
168
 
165
- token = verify_token(cookie_token)
169
+ begin
170
+ token = verify_token(cookie_token)
171
+ return signed_out(env) if !token
166
172
 
167
- if token && token["iat"] && client_uat && Integer(client_uat) <= token["iat"]
168
- return signed_in(env, token, cookie_token)
173
+ if token["iat"] && client_uat && Integer(client_uat) <= token["iat"]
174
+ return signed_in(env, token, cookie_token)
175
+ end
176
+ rescue JWT::ExpiredSignature, JWT::InvalidIatError
177
+ unknown(interstitial: true)
169
178
  end
170
179
 
171
180
  unknown(interstitial: true)
@@ -186,11 +195,11 @@ module Clerk
186
195
  end
187
196
 
188
197
  # Outcome C
189
- def unknown(interstitial: false)
190
- return [401, {}, []] if !interstitial
198
+ def unknown(interstitial: false, opts: {})
199
+ return [401, interstitial_headers(opts), []] if !interstitial
191
200
 
192
201
  # Load Clerk.js to update the __session and __client_uat cookies.
193
- [401, {"Content-Type" => "text/html"}, [sdk.interstitial]]
202
+ [401, interstitial_headers(opts), [sdk.interstitial]]
194
203
  end
195
204
 
196
205
  def development_or_staging?
@@ -231,6 +240,8 @@ module Clerk
231
240
 
232
241
  begin
233
242
  sdk.verify_token(token)
243
+ rescue JWT::ExpiredSignature, JWT::InvalidIatError => e
244
+ raise e
234
245
  rescue JWT::DecodeError, JWT::RequiredDependencyError => e
235
246
  false
236
247
  end
@@ -239,5 +250,14 @@ module Clerk
239
250
  def sdk
240
251
  Clerk::SDK.new
241
252
  end
253
+
254
+ def interstitial_headers(reason: nil, message: nil, status: nil)
255
+ {
256
+ "Content-Type" => "text/html",
257
+ "X-Clerk-Auth-Reason" => reason,
258
+ "X-Clerk-Auth-Message" => message,
259
+ "X-Clerk-Auth-Status" => status,
260
+ }.compact
261
+ end
242
262
  end
243
263
  end
data/lib/clerk/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Clerk
4
- VERSION = "2.9.0"
4
+ VERSION = "2.10.0.beta1"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: clerk-sdk-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.9.0
4
+ version: 2.10.0.beta1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Clerk
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-02-28 00:00:00.000000000 Z
11
+ date: 2023-03-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -90,6 +90,7 @@ files:
90
90
  - ".github/workflows/main.yml"
91
91
  - ".gitignore"
92
92
  - CHANGELOG.md
93
+ - CODEOWNERS
93
94
  - Gemfile
94
95
  - Gemfile.lock
95
96
  - LICENSE.txt
@@ -104,7 +105,6 @@ files:
104
105
  - lib/clerk/authenticatable.rb
105
106
  - lib/clerk/errors.rb
106
107
  - lib/clerk/jwks_cache.rb
107
- - lib/clerk/proxy.rb
108
108
  - lib/clerk/rack_middleware.rb
109
109
  - lib/clerk/rack_middleware_v2.rb
110
110
  - lib/clerk/railtie.rb
@@ -132,7 +132,7 @@ metadata:
132
132
  homepage_uri: https://github.com/clerkinc/clerk-sdk-ruby
133
133
  source_code_uri: https://github.com/clerkinc/clerk-sdk-ruby
134
134
  changelog_uri: https://github.com/clerkinc/clerk-sdk-ruby/blob/main/CHANGELOG.md
135
- post_install_message:
135
+ post_install_message:
136
136
  rdoc_options: []
137
137
  require_paths:
138
138
  - lib
@@ -143,12 +143,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
143
143
  version: 2.4.0
144
144
  required_rubygems_version: !ruby/object:Gem::Requirement
145
145
  requirements:
146
- - - ">="
146
+ - - ">"
147
147
  - !ruby/object:Gem::Version
148
- version: '0'
148
+ version: 1.3.1
149
149
  requirements: []
150
- rubygems_version: 3.3.7
151
- signing_key:
150
+ rubygems_version: 3.2.3
151
+ signing_key:
152
152
  specification_version: 4
153
153
  summary: Clerk SDK for Ruby.
154
154
  test_files: []
data/lib/clerk/proxy.rb DELETED
File without changes