strongmind-auth 1.1.74 → 1.1.78

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: 5045731638769140a75bf68a154d0974ec973384233c100fdef35222440b414a
4
- data.tar.gz: 166214edf8924600b71b37f32a475775e7117a3231db37ffb4cebd083d60eb7e
3
+ metadata.gz: 050c55322ecee87acca90b90fcf0a35568ecbb15b3391ef071b4381e6ae11a6c
4
+ data.tar.gz: 3d86af83127228831e28687430c922cf5b602fc697d779f5f5e8199fd19dcc9c
5
5
  SHA512:
6
- metadata.gz: 2e1e56c92fd97a41be2a5d7d40bbfabf75cf4fb18338a1e0f846cf840f8a5a536dd788ad569e8e3cdcd7d484f9908d573ea574d6e0ed1f9453e2e78d98a3477d
7
- data.tar.gz: 02b89568977e51d1f516c0ed3ba29ae8dd05b2ef03573ccbd29e34173e7e66c6505e99614a74601c391fd383e0692af751d598d615802b3187694e5e65e3ebaa
6
+ metadata.gz: dcf96bf27833b844cc169b67cb241a5b264558d60b41d317ee637b87d22bc6b2c3c5eec4784dbf824c892dce00c30ac6a4e1ec331640a198075c5f5827d423df
7
+ data.tar.gz: 0affb3f22325c53e662f96d29461e49b9fe2ac86deb9c32ce7ce00e8fb3dea38db60e2cebcaba25dac14f3554b0c13752d6d35159595642b6692ec3cef5972d6
@@ -69,38 +69,31 @@ module JwtUtilities
69
69
  end
70
70
 
71
71
  def user_jwt(session_data)
72
- tokens = current_user.nil? ? nil : Rails.cache.read(current_user.uid)
73
- validate_tokens(tokens) unless tokens.nil?
74
-
75
- if tokens.nil?
76
- tokens = generate_tokens(session_data[:refresh_token])
77
- validate_tokens(tokens)
78
-
79
- unless current_user.nil?
80
- Rails.cache.write(current_user.uid, tokens)
72
+ tokens = current_user&.auth_token_cache
73
+ auth_client = PlatformSdk::Identity::AuthClient.new(
74
+ ENV['IDENTITY_BASE_URL'],
75
+ ENV['IDENTITY_CLIENT_ID'],
76
+ ENV['IDENTITY_CLIENT_SECRET'])
77
+ begin
78
+ if tokens.nil?
79
+ tokens = auth_client.refresh_token(session_data[:refresh_token])
80
+ else
81
+ auth_client.refresh_session(session: tokens)
81
82
  end
83
+ Rails.cache.write(current_user.uid, tokens)
84
+ tokens
85
+ rescue PlatformSdk::Identity::ClientError => e
86
+ handle_refresh_error(e)
82
87
  end
83
- session_data[:refresh_token] = tokens[:refresh_token]
84
-
85
- tokens
86
88
  end
87
89
 
88
- def validate_tokens(tokens)
89
- return unless tokens[:error] == 'invalid_grant' || !tokens[:refresh_token]
90
+ def handle_refresh_error(error)
91
+ raise Strongmind::Exceptions::RefreshTokenExpiredError, error.response[:body]['error'] if invalid_grant_error?(error)
90
92
 
91
- raise Strongmind::Exceptions::RefreshTokenExpiredError, tokens[:error]
93
+ raise error
92
94
  end
93
95
 
94
- def generate_tokens(refresh_token)
95
- identity_base_url = ENV['IDENTITY_BASE_URL']
96
- identity_client_id = ENV['IDENTITY_CLIENT_ID']
97
- response = Faraday.post("#{identity_base_url}/connect/token", {
98
- client_id: identity_client_id,
99
- client_secret: ENV['IDENTITY_CLIENT_SECRET'],
100
- grant_type: 'refresh_token',
101
- refresh_token: refresh_token
102
- })
103
-
104
- JSON.parse(response.body, symbolize_names: true)
96
+ def invalid_grant_error?(error)
97
+ error.response[:body]['error'] == 'invalid_grant'
105
98
  end
106
99
  end
@@ -28,6 +28,6 @@ class UserBase < ApplicationRecord
28
28
  end
29
29
 
30
30
  def invalidate_all_sessions!
31
- update_attribute(:session_token, SecureRandom.hex)
31
+ update_column(:session_token, SecureRandom.hex)
32
32
  end
33
33
  end
@@ -1,5 +1,5 @@
1
1
  module Strongmind
2
2
  module Auth
3
- VERSION = "1.1.74"
3
+ VERSION = "1.1.78"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: strongmind-auth
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.74
4
+ version: 1.1.78
5
5
  platform: ruby
6
6
  authors:
7
7
  - Team Belding
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-04-09 00:00:00.000000000 Z
11
+ date: 2024-04-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails