strongmind-auth 1.1.74 → 1.1.76

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: 97c1b7fb5d1dc054c740f5531923c060625e4af1f7d85188db7b3ff3b479ea01
4
+ data.tar.gz: 7ba5c4d51d0f449e4c78b34cb2f997134f14b7bc64d354cf077460cf31fb0c01
5
5
  SHA512:
6
- metadata.gz: 2e1e56c92fd97a41be2a5d7d40bbfabf75cf4fb18338a1e0f846cf840f8a5a536dd788ad569e8e3cdcd7d484f9908d573ea574d6e0ed1f9453e2e78d98a3477d
7
- data.tar.gz: 02b89568977e51d1f516c0ed3ba29ae8dd05b2ef03573ccbd29e34173e7e66c6505e99614a74601c391fd383e0692af751d598d615802b3187694e5e65e3ebaa
6
+ metadata.gz: 3948cba9f91d973154152d3bd0d9ce92ccb83bd9a2b9724102a76d46cb6f2b481408f6855d416c778ba041576b946a99ea1761d4ed8fcead5318c71dae403bec
7
+ data.tar.gz: 19e8e94d1fa603bc207bda0a72337441633380808d4bd972a2c7ef039c0c734d15b2f9dd84e3dd6939355166502e6abdbf0aa75319917ffe3315e9b277d6943e
@@ -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.nil? ? nil : Rails.cache.read(current_user&.uid)
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
@@ -1,5 +1,5 @@
1
1
  module Strongmind
2
2
  module Auth
3
- VERSION = "1.1.74"
3
+ VERSION = "1.1.76"
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.76
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