strongmind-auth 1.1.73 → 1.1.74

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: 2671d322d9318a0b88fde814ce8ecfc2061601aedbf589cbb8331909c35f451f
4
- data.tar.gz: 6e275ca90f98dfcfb17bcfe444d5d4446fb01b6a2e0516f3bf8d85044322796a
3
+ metadata.gz: 5045731638769140a75bf68a154d0974ec973384233c100fdef35222440b414a
4
+ data.tar.gz: 166214edf8924600b71b37f32a475775e7117a3231db37ffb4cebd083d60eb7e
5
5
  SHA512:
6
- metadata.gz: 41ac60523b02df968aaa978ac258b2de9566f1f59e4d589899943ebcb4f5b3095a00a4a337eff5d6f16a39d4a632ab6e11bd0150417e021ab3e09339eadf2f0e
7
- data.tar.gz: b7c122065a47a7f5e0a63be0fa3330631a0de5bfbcb54c81d10db27cc7e4ebaf4a3ecc737ab57f3db1ea8a26b3810fddbf547d670b610f5b32787de533fba46c
6
+ metadata.gz: 2e1e56c92fd97a41be2a5d7d40bbfabf75cf4fb18338a1e0f846cf840f8a5a536dd788ad569e8e3cdcd7d484f9908d573ea574d6e0ed1f9453e2e78d98a3477d
7
+ data.tar.gz: 02b89568977e51d1f516c0ed3ba29ae8dd05b2ef03573ccbd29e34173e7e66c6505e99614a74601c391fd383e0692af751d598d615802b3187694e5e65e3ebaa
@@ -69,16 +69,15 @@ 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)
72
+ tokens = current_user.nil? ? nil : Rails.cache.read(current_user.uid)
73
73
  validate_tokens(tokens) unless tokens.nil?
74
74
 
75
75
  if tokens.nil?
76
- tokens = generate_tokens(session_data)
76
+ tokens = generate_tokens(session_data[:refresh_token])
77
77
  validate_tokens(tokens)
78
78
 
79
79
  unless current_user.nil?
80
- tokens[:expires_in] = 1.hour.to_i if tokens[:expires_in].nil?
81
- Rails.cache.write(current_user&.uid, tokens, expires_in: tokens[:expires_in].seconds - 10.minutes.in_seconds)
80
+ Rails.cache.write(current_user.uid, tokens)
82
81
  end
83
82
  end
84
83
  session_data[:refresh_token] = tokens[:refresh_token]
@@ -92,14 +91,14 @@ module JwtUtilities
92
91
  raise Strongmind::Exceptions::RefreshTokenExpiredError, tokens[:error]
93
92
  end
94
93
 
95
- def generate_tokens(session_data)
94
+ def generate_tokens(refresh_token)
96
95
  identity_base_url = ENV['IDENTITY_BASE_URL']
97
96
  identity_client_id = ENV['IDENTITY_CLIENT_ID']
98
97
  response = Faraday.post("#{identity_base_url}/connect/token", {
99
98
  client_id: identity_client_id,
100
99
  client_secret: ENV['IDENTITY_CLIENT_SECRET'],
101
100
  grant_type: 'refresh_token',
102
- refresh_token: session_data[:refresh_token]
101
+ refresh_token: refresh_token
103
102
  })
104
103
 
105
104
  JSON.parse(response.body, symbolize_names: true)
@@ -11,7 +11,7 @@ module StrongMindNav
11
11
  @top_navbar_html = navbar[:top_navbar_html]
12
12
  @bottom_navbar_html = navbar[:bottom_navbar_html]
13
13
  @theme_css = navbar[:theme_css]
14
- rescue Strongmind::Exceptions::NilSessionError, Strongmind::Exceptions::TokenNotFoundError, Strongmind::Exceptions::UserNotFoundError, Strongmind::Exceptions::RefreshTokenExpiredError => e
14
+ rescue Strongmind::Exceptions::TokenNotFoundError, Strongmind::Exceptions::UserNotFoundError, Strongmind::Exceptions::RefreshTokenExpiredError => e
15
15
  Sentry.capture_exception(e)
16
16
  Rails.logger.error(e)
17
17
  flash[:alert] = e.inspect if Rails.env.development? || Rails.env.test?
@@ -12,7 +12,7 @@ module Users
12
12
 
13
13
  render plain: "You do not have permission to access this application.", status: :unauthorized and return if @user.nil?
14
14
 
15
- session[:refresh_token] = request.env['omniauth.auth'].credentials['refresh_token']
15
+ session[:refresh_token] = auth.credentials['refresh_token']
16
16
  flash.delete(:notice)
17
17
 
18
18
  if @user.persisted?
@@ -34,13 +34,9 @@ module Users
34
34
  user_token_info = fetch_user_token_info
35
35
 
36
36
  id_token_hint = user_token_info[:id_token]
37
- token = user_token_info[:access_token]
38
37
  current_user&.invalidate_all_sessions!
39
38
  identity_base_url = ENV['IDENTITY_BASE_URL']
40
- redirect_to "#{identity_base_url}/connect/endsession?id_token_hint=#{id_token_hint}", headers: {
41
- 'Content-Type' => 'application/json',
42
- 'Authorization' => "Bearer #{token}"
43
- }, allow_other_host: true
39
+ redirect_to "#{identity_base_url}/connect/endsession?id_token_hint=#{id_token_hint}", allow_other_host: true
44
40
  end
45
41
 
46
42
  end
@@ -12,9 +12,8 @@ class UserBase < ApplicationRecord
12
12
  {
13
13
  id_token: auth.credentials.id_token,
14
14
  access_token: auth.credentials.token,
15
- refresh_token: auth.credentials.refresh_token
16
- },
17
- expires_in: auth.credentials.expires_in.seconds - 10.minutes
15
+ refresh_token: auth.credentials.refresh_token,
16
+ }
18
17
  )
19
18
  end
20
19
 
@@ -1,5 +1,5 @@
1
1
  module Strongmind
2
2
  module Auth
3
- VERSION = "1.1.73"
3
+ VERSION = "1.1.74"
4
4
  end
5
5
  end
@@ -48,8 +48,8 @@ module Strongmind
48
48
  end
49
49
 
50
50
  def fetch_navbar_data(nav_items)
51
- refresh_session
52
- access_token = token
51
+ session = refresh_session
52
+ access_token = session[:access_token]
53
53
 
54
54
  connection.post(navbar_endpoint, nav_items.to_json, 'Authorization' => "Bearer #{access_token}")
55
55
  end
@@ -63,24 +63,16 @@ module Strongmind
63
63
  end
64
64
  end
65
65
 
66
- def token
67
- cache_data = Rails.cache.fetch(user.uid)
68
- cache_missing_message = " - check your caching settings (switch to file or redis)" if Rails.env.development?
69
- unless cache_data&.key?(:access_token)
70
- raise Strongmind::Exceptions::TokenNotFoundError, "Token not found for user #{user.uid}#{cache_missing_message}"
71
- end
72
-
73
- cache_data[:access_token]
74
- end
75
-
76
66
  def refresh_session
77
67
  session = Rails.cache.fetch(user.uid)
68
+ cache_missing_message = " - check your caching settings (switch to file or redis)" if Rails.env.development?
78
69
  unless session&.key?(:access_token)
79
- raise Strongmind::Exceptions::NilSessionError, "Session not found for user #{user.uid}"
70
+ raise Strongmind::Exceptions::TokenNotFoundError, "Token not found for user #{user.uid}#{cache_missing_message}"
80
71
  end
81
72
 
82
73
  auth_client.refresh_session(session:)
83
- Rails.cache.write(user.uid, session, expires_in: session[:expires_in].to_i.seconds - 10.minutes)
74
+ Rails.cache.write(user.uid, session)
75
+ session
84
76
  rescue PlatformSdk::Identity::ClientError => e
85
77
  handle_refresh_error(e)
86
78
  end
@@ -6,6 +6,5 @@ module Strongmind
6
6
 
7
7
  class RefreshTokenExpiredError < StandardError; end
8
8
 
9
- class NilSessionError < StandardError; end
10
9
  end
11
10
  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.73
4
+ version: 1.1.74
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-08 00:00:00.000000000 Z
11
+ date: 2024-04-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails