foobara-auth 0.0.12 → 0.0.13

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: 371e579335275b2c6d8d695aea7b14784f6ecf95d1df4742b38eb251ba941a6a
4
- data.tar.gz: 12354ce1c4b44cdb8ce1c398b7334ac6ce0f6a4a3ee619e698b5c94e114df528
3
+ metadata.gz: ec416a90f775b81c196934c7e9db2dfb4b8da390dc2133c737a889ef5aaacede
4
+ data.tar.gz: 0b24c1e2b94652a74e8bb27eacafabfffe6141022b86b1e233b566ed3feec4ae
5
5
  SHA512:
6
- metadata.gz: 7d79b81bd382733037b66f464552e5401c69801355bc78c00354f22ca60b8db43d4066b012476a1b7bcdd854d03b39e854847b6cbf5bdc39543f7dc80e832cac
7
- data.tar.gz: 2cbd1f530b358e94eb0dd161640828e69473ede06f9d0d56204ece3ecc17efc974a3b283b902344709c2932077b777c9a400357b8c712d9b31e0df8e5bd79faa
6
+ metadata.gz: 51e2a3098e111be28f582c9870e525840d769d3ae617918364b51a65ae122674b19fcaca27e140d16364cf1550549b07422a9f9480d32cebfa4f132b23259eaa
7
+ data.tar.gz: 634134b416bdcd9c97f21ad7fabfeaadfe04851cd7fe28226664d5ef6af23c43d03ec44f575605d25699b7d849629964a4c33fa47b16d0616016afd3a2e742d5
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ ## [0.0.13] - 2025-05-13
2
+
3
+ - Allow logout to work even if refresh token is deleted/invalid
4
+
1
5
  ## [0.0.12] - 2025-05-05
2
6
 
3
7
  - Do not explode when refresh token doesn't exist
data/src/logout.rb CHANGED
@@ -1,11 +1,6 @@
1
1
  module Foobara
2
2
  module Auth
3
3
  class Logout < Foobara::Command
4
- class InvalidRefreshTokenError < Foobara::RuntimeError
5
- context refresh_token_id: :string
6
- message "Invalid refresh token"
7
- end
8
-
9
4
  depends_on VerifyToken
10
5
  depends_on_entity Types::Token
11
6
  depends_on_entity Types::User
@@ -21,15 +16,18 @@ module Foobara
21
16
  if refresh_token?
22
17
  determine_refresh_token_id_and_secret
23
18
  load_refresh_token_record
24
- verify_refresh_token
25
- # Delete it instead maybe?
26
- mark_refresh_token_as_used
19
+
20
+ if refresh_token_record?
21
+ verify_refresh_token
22
+ # Delete it instead maybe?
23
+ mark_refresh_token_as_used
24
+ end
27
25
  end
28
26
 
29
27
  nil
30
28
  end
31
29
 
32
- attr_accessor :refresh_token_record, :refresh_token_id, :refresh_token_secret
30
+ attr_accessor :refresh_token_record, :refresh_token_id, :refresh_token_secret, :token_verified
33
31
 
34
32
  def refresh_token?
35
33
  !!refresh_token
@@ -41,16 +39,18 @@ module Foobara
41
39
 
42
40
  def load_refresh_token_record
43
41
  self.refresh_token_record = Types::Token.load(refresh_token_id)
42
+ rescue Foobara::Entity::NotFoundError
43
+ nil
44
+ end
45
+
46
+ def refresh_token_record?
47
+ refresh_token_record
44
48
  end
45
49
 
46
50
  def verify_refresh_token
47
51
  valid = run_subcommand!(VerifyToken, token_string: refresh_token)
48
52
 
49
- unless valid[:verified]
50
- # :nocov:
51
- add_runtime_error(InvalidRefreshTokenError.new(context: { refresh_token_id: }))
52
- # :nocov:
53
- end
53
+ self.token_verified = valid[:verified]
54
54
  end
55
55
 
56
56
  def mark_refresh_token_as_used
data/src/verify_token.rb CHANGED
@@ -18,6 +18,11 @@ module Foobara
18
18
  message "Token is expired"
19
19
  end
20
20
 
21
+ class TokenDoesNotExistError < Foobara::RuntimeError
22
+ context({})
23
+ message "Token does not exist"
24
+ end
25
+
21
26
  inputs do
22
27
  # TODO: we should add a processor that flags an attribute as sensitive so we can scrub
23
28
  token_string :string, :required, :sensitive
@@ -62,7 +67,8 @@ module Foobara
62
67
 
63
68
  def load_token_record
64
69
  self.token_record_to_verify_against = Types::Token.load(token_id)
65
- # TODO: handle no record found...
70
+ rescue Entity::NotFoundError
71
+ add_runtime_error(TokenDoesNotExistError)
66
72
  end
67
73
 
68
74
  def verify_hashed_secret_against_token_record
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: foobara-auth
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.12
4
+ version: 0.0.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - Miles Georgi
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2025-05-05 00:00:00.000000000 Z
10
+ date: 2025-05-14 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: argon2