clerk-sdk-ruby 2.9.0 → 2.10.0.beta2

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: cbaa98cd305b04c0b904e1a2c86d3443f366aa9dba7f71c5c0a0bc7696da3934
4
- data.tar.gz: da3b5c3910d7d04453ce910a1e56a5d3057e7b6971aa9e25944e45ac4552d99f
3
+ metadata.gz: 7a9cc4880855663a951169e9f5898ec94e3693b048e86c84feae5dbfd4aa1318
4
+ data.tar.gz: 19883dc888a73800890edcf438443fc3ceb529c971829b3b079b884933136417
5
5
  SHA512:
6
- metadata.gz: bbede149e1d228a36ca7bcc38dee963498364f770c1facda036b14a183ef7abd0281b627399db911b44c73d22247969845b53db23808c0631628b550a630a69d
7
- data.tar.gz: 5b4156f656adf0db7b92a718fd171b6d6b861624df5f9f1b56dd0b6c25ed8b2b18a4af73bb771e79c1ae22420a06beaa486941549757a4a3a858f527f17a421b
6
+ metadata.gz: e3f51660a5c2e56cffb7e681ddf31b5155d37ed5cd87a85f93be09b39493ee9e82eb7f0cb12fb19089119f296fb58cfdbc43392e6034da0298cfdce60957df86
7
+ data.tar.gz: c236853329fb8c0ac1d62b9324dda4daab54d4de034b639ea9dc8425440ae3bb30e29c0e795dd1621a3d805801e35744d45943372ec32b39acff842702152428
data/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  ## unreleased
2
2
 
3
+ ## 2.10.0.beta2 - 2023-03-08
4
+
5
+ - fix: incorrect usage keyword parameter (fix for 2.10.0.beta1)
6
+
7
+ ## 2.10.0.beta1 - 2023-03-08
8
+
9
+ - fix: Change signed-out & interstitial request state conditions [https://github.com/clerkinc/clerk-sdk-ruby/pull/30]
10
+
3
11
  ## 2.9.0
4
12
 
5
13
  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.beta2)
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.beta2"
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.beta2
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