Class: Foobara::Auth::RefreshLogin
- Defined in:
- foobara-auth-0.0.13/src/refresh_login.rb
Defined Under Namespace
Classes: InvalidRefreshTokenError
Constant Summary
Constants included from TruncatedInspect
Instance Attribute Summary collapse
-
#access_token ⇒ Object
Returns the value of attribute access_token.
-
#expires_at ⇒ Object
Returns the value of attribute expires_at.
-
#new_refresh_token ⇒ Object
Returns the value of attribute new_refresh_token.
-
#refresh_token_id ⇒ Object
Returns the value of attribute refresh_token_id.
-
#refresh_token_record ⇒ Object
Returns the value of attribute refresh_token_record.
-
#refresh_token_secret ⇒ Object
Returns the value of attribute refresh_token_secret.
-
#user ⇒ Object
Returns the value of attribute user.
Attributes included from CommandPatternImplementation::Concerns::Subcommands
Attributes included from CommandPatternImplementation::Concerns::Runtime
Attributes included from CommandPatternImplementation::Concerns::Errors
Attributes included from CommandPatternImplementation::Concerns::Inputs
Instance Method Summary collapse
- #determine_refresh_token_id_and_secret ⇒ Object
- #execute ⇒ Object
- #generate_access_token ⇒ Object
- #generate_new_refresh_token ⇒ Object
- #load_refresh_token_record ⇒ Object
- #load_user ⇒ Object
- #mark_refresh_token_as_used ⇒ Object
- #tokens ⇒ Object
- #verify_refresh_token ⇒ Object
Methods inherited from Command
Methods included from Concern
foobara_class_methods_module_for, foobara_concern?, included
Methods included from CommandPatternImplementation::Concerns::Reflection
Methods included from CommandPatternImplementation::Concerns::DomainMappers
#domain_map, #domain_map!, #run_mapped_subcommand!
Methods included from CommandPatternImplementation::Concerns::Subcommands
#run_subcommand!, #subcommand?
Methods included from CommandPatternImplementation::Concerns::Entities
Methods included from CommandPatternImplementation::Concerns::Transactions
Methods included from NestedTransactionable
#auto_detect_current_transactions, #commit_transaction, #commit_transaction_if_open, #open_transaction, #opened_transactions, #relevant_entity_classes, relevant_entity_classes_for_type, #relevant_entity_classes_for_type, #rollback_transaction, #transactions, #use_transaction
Methods included from CommandPatternImplementation::Concerns::StateMachine
Methods included from CommandPatternImplementation::Concerns::Runtime
#halt!, #run, #run!, #run_execute, #succeed, #success?, #validate, #validate_records
Methods included from CommandPatternImplementation::Concerns::Errors
Methods included from CommandPatternImplementation::Concerns::Inputs
#cast_and_validate_inputs, #initialize, #method_missing, #respond_to_missing?, #respond_to_missing_for_inputs?
Methods included from TruncatedInspect
Dynamic Method Handling
This class handles dynamic methods through the method_missing method in the class Foobara::CommandPatternImplementation::Concerns::Inputs
Instance Attribute Details
#access_token ⇒ Object
Returns the value of attribute access_token.
38 39 40 |
# File 'foobara-auth-0.0.13/src/refresh_login.rb', line 38 def access_token @access_token end |
#expires_at ⇒ Object
Returns the value of attribute expires_at.
38 39 40 |
# File 'foobara-auth-0.0.13/src/refresh_login.rb', line 38 def expires_at @expires_at end |
#new_refresh_token ⇒ Object
Returns the value of attribute new_refresh_token.
38 39 40 |
# File 'foobara-auth-0.0.13/src/refresh_login.rb', line 38 def new_refresh_token @new_refresh_token end |
#refresh_token_id ⇒ Object
Returns the value of attribute refresh_token_id.
38 39 40 |
# File 'foobara-auth-0.0.13/src/refresh_login.rb', line 38 def refresh_token_id @refresh_token_id end |
#refresh_token_record ⇒ Object
Returns the value of attribute refresh_token_record.
38 39 40 |
# File 'foobara-auth-0.0.13/src/refresh_login.rb', line 38 def refresh_token_record @refresh_token_record end |
#refresh_token_secret ⇒ Object
Returns the value of attribute refresh_token_secret.
38 39 40 |
# File 'foobara-auth-0.0.13/src/refresh_login.rb', line 38 def refresh_token_secret @refresh_token_secret end |
#user ⇒ Object
Returns the value of attribute user.
38 39 40 |
# File 'foobara-auth-0.0.13/src/refresh_login.rb', line 38 def user @user end |
Instance Method Details
#determine_refresh_token_id_and_secret ⇒ Object
41 42 43 |
# File 'foobara-auth-0.0.13/src/refresh_login.rb', line 41 def determine_refresh_token_id_and_secret self.refresh_token_id, self.refresh_token_secret = refresh_token.split("_") end |
#execute ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'foobara-auth-0.0.13/src/refresh_login.rb', line 23 def execute determine_refresh_token_id_and_secret load_refresh_token_record verify_refresh_token # Delete it instead maybe? mark_refresh_token_as_used load_user generate_access_token generate_new_refresh_token tokens end |
#generate_access_token ⇒ Object
63 64 65 |
# File 'foobara-auth-0.0.13/src/refresh_login.rb', line 63 def generate_access_token self.access_token = run_subcommand!(BuildAccessToken, user:, token_ttl: access_token_ttl) end |
#generate_new_refresh_token ⇒ Object
71 72 73 |
# File 'foobara-auth-0.0.13/src/refresh_login.rb', line 71 def generate_new_refresh_token self.new_refresh_token = run_subcommand!(CreateRefreshToken, user:, token_ttl: refresh_token_ttl) end |
#load_refresh_token_record ⇒ Object
45 46 47 48 49 |
# File 'foobara-auth-0.0.13/src/refresh_login.rb', line 45 def load_refresh_token_record self.refresh_token_record = Types::Token.load(refresh_token_id) rescue Foobara::Entity::NotFoundError add_runtime_error(InvalidRefreshTokenError.new) end |
#load_user ⇒ Object
67 68 69 |
# File 'foobara-auth-0.0.13/src/refresh_login.rb', line 67 def load_user self.user ||= Types::User.that_owns(refresh_token_record, "refresh_tokens") end |
#mark_refresh_token_as_used ⇒ Object
59 60 61 |
# File 'foobara-auth-0.0.13/src/refresh_login.rb', line 59 def mark_refresh_token_as_used refresh_token_record.use_up! end |
#tokens ⇒ Object
75 76 77 78 79 80 |
# File 'foobara-auth-0.0.13/src/refresh_login.rb', line 75 def tokens { access_token:, refresh_token: new_refresh_token } end |
#verify_refresh_token ⇒ Object
51 52 53 54 55 56 57 |
# File 'foobara-auth-0.0.13/src/refresh_login.rb', line 51 def verify_refresh_token valid = run_subcommand!(VerifyToken, token_string: refresh_token) unless valid[:verified] add_runtime_error(InvalidRefreshTokenError.new) end end |