clerk-sdk-ruby 1.0.0 → 1.0.1

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: 6f285e5ca6280db100eed30796279e412901f157a3fd43d16a41a64d9c0cd85f
4
- data.tar.gz: 32d0fab6c78b57c0f06fa9d3ef077f077cb6533ada6a400f98bec6a087d939e8
3
+ metadata.gz: 348624d72466db1c264e0ba1044b4dcda33e1d7327791bc1732266d45a84ca00
4
+ data.tar.gz: 1f4732763f8b27000fc55949652bad8d8ed36b54bb52ee8d43c0875b9c61e272
5
5
  SHA512:
6
- metadata.gz: 7721083974266f6b18c6ceb1e1a14abc623caad474a7fcf7a065aafa4ac51c11f732f12db257fa46e3f903a4c9985eb0e6c21e451d3ffc877b7f434ba482fe91
7
- data.tar.gz: b6a5689badfc699d7d03accb5a301a3504adf8eae009ef450b462fee9a20f995c2ec255ec9b771175fd76209ba991544a51a9e8cd6f0a14f82d6342a922942fb
6
+ metadata.gz: de828320ec3e92b3e3d0b5b9f584058fff86fe8b632616fd82af3de5a5398c5459b747262deed243c83319641e5a294d0c01b30bd1714e4711d72007d3b5e722
7
+ data.tar.gz: e65292535f0d1fa5a0a01e24d832af97b467c8a563cff73c08eb64b54a9946440c2888bcf18125dbdc7fc7b97404aa69d85bb3e982b1a826567fa7e63affb25a
@@ -6,11 +6,11 @@ module Clerk
6
6
 
7
7
  protected
8
8
  def clerk_session
9
- request.env["clerk_session"]
9
+ request.env["clerk"].session
10
10
  end
11
11
 
12
12
  def clerk_user
13
- request.env["clerk_user"]
13
+ request.env["clerk"].user
14
14
  end
15
15
 
16
16
  def clerk_user_signed_in?
File without changes
@@ -8,48 +8,75 @@ module Clerk
8
8
 
9
9
  def call(env)
10
10
  req = Rack::Request.new(env)
11
- token = req.cookies["__session"]
11
+ env["clerk"] = Proxy.new(env)
12
+ @app.call(env)
13
+ end
14
+ end
12
15
 
13
- if token
14
- sess_id = req.params["_clerk_session_id"]
15
- begin
16
- env["clerk_session"] = fetch_session(token, sess_id)
17
- rescue Errors::Authentication => e
18
- env["clerk_error"] = e
19
- end
20
- end
21
- if sess = env["clerk_session"]
22
- env["clerk_user"] = fetch_user(sess["user_id"])
16
+ class Proxy
17
+ attr_reader :session_id, :error
18
+ def initialize(env)
19
+ req = Rack::Request.new(env)
20
+ @token = req.cookies["__session"]
21
+ @session_id = req.params["_clerk_session_id"]
22
+ @session = nil
23
+ @user_id = nil
24
+ @user = nil
25
+ end
26
+
27
+ def session
28
+ return nil if @token.nil?
29
+ return @session if @session
30
+
31
+ begin
32
+ @session = fetch_session
33
+ rescue Errors::Authentication => e
34
+ @error = e
23
35
  end
24
- @app.call(env)
36
+ @session
37
+ end
38
+
39
+ def user_id
40
+ @user_id ||= session.dig("user_id")
41
+ end
42
+
43
+ def user
44
+ return nil if session.nil?
45
+ @user ||= fetch_user(user_id)
46
+ end
47
+
48
+ def debug
49
+ (instance_variables - [:@sdk]).map do |ivar|
50
+ [ivar.to_s, instance_variable_get(ivar)]
51
+ end.to_h
25
52
  end
26
53
 
27
54
  private
28
- def clerk_sdk
29
- SDK.new
55
+ def sdk
56
+ @sdk ||= SDK.new
57
+ end
58
+
59
+ def cache_key
60
+ @cache_key ||= @token.split(".")[1]
30
61
  end
31
62
 
32
- def fetch_session(token, sess_id)
33
- cache_key = token.split(".")[1]
34
- if sess_id
35
- session = cached_fetch("clerk_session:#{sess_id}:#{cache_key}") do
36
- sdk = clerk_sdk
37
- sdk.sessions.verify_token(sess_id, token)
63
+ def fetch_session
64
+ if session_id
65
+ cached_fetch("clerk_session:#{session_id}:#{cache_key}") do
66
+ sdk.sessions.verify_token(session_id, @token)
38
67
  end
39
68
  else
40
- session = cached_fetch("clerk_session:#{cache_key}") do
41
- sdk = clerk_sdk
42
- client = sdk.clients.verify_token(token)
43
- sess_id = client["last_active_session_id"]
69
+ cached_fetch("clerk_session:#{cache_key}") do
70
+ client = sdk.clients.verify_token(@token)
71
+ @session_id = client["last_active_session_id"]
44
72
  client["sessions"].find do |sess|
45
- sess["id"] == sess_id
73
+ sess["id"] == @session_id
46
74
  end
47
75
  end
48
76
  end
49
77
  end
50
78
 
51
79
  def fetch_user(user_id)
52
- sdk = clerk_sdk
53
80
  cached_fetch("clerk_user:#{user_id}") do
54
81
  sdk.users.find(user_id)
55
82
  end
data/lib/clerk/railtie.rb CHANGED
@@ -7,11 +7,5 @@ module Clerk
7
7
  initializer "clerk_railtie.configure_rails_initialization" do |app|
8
8
  app.middleware.use Clerk::RackMiddleware
9
9
  end
10
-
11
- config.to_prepare do
12
- Clerk.configure do |c|
13
- c.middleware_cache_store ||= Rails.cache
14
- end
15
- end
16
10
  end
17
11
  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 = "1.0.0"
4
+ VERSION = "1.0.1"
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: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Clerk
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-05-27 00:00:00.000000000 Z
11
+ date: 2021-06-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -44,6 +44,7 @@ files:
44
44
  - lib/clerk.rb
45
45
  - lib/clerk/authenticatable.rb
46
46
  - lib/clerk/errors.rb
47
+ - lib/clerk/proxy.rb
47
48
  - lib/clerk/rack_middleware.rb
48
49
  - lib/clerk/railtie.rb
49
50
  - lib/clerk/resources.rb