Class: MCP::Client::OAuth::InMemoryStorage
- Inherits:
-
Object
- Object
- MCP::Client::OAuth::InMemoryStorage
- Defined in:
- lib/mcp/client/oauth/in_memory_storage.rb
Overview
Default reference implementation of the storage contract that
Provider uses to persist OAuth state. Holds the two pieces of data
the flow saves and reads on every request:
tokens: the hash returned by the token endpoint (access_token, optionalrefresh_token,expires_in,scope, etc.).client_information: the hash returned by Dynamic Client Registration or supplied as pre-registered credentials (client_id, optionalclient_secret, optionaltoken_endpoint_auth_method).
This class keeps everything in process memory, so the credentials live
only for the lifetime of the Ruby process. Applications that need
persistence across restarts should supply a custom object responding to
the same four-method contract (tokens, save_tokens(t),
client_information, save_client_information(info)) and pass it via
Provider.new(storage: ...). The shape mirrors Python SDK's
TokenStorage Protocol; TypeScript's OAuthClientProvider rolls
the same responsibilities into a single object.
Instance Attribute Summary collapse
-
#client_information ⇒ Object
Returns the value of attribute client_information.
-
#tokens ⇒ Object
Returns the value of attribute tokens.
Instance Method Summary collapse
-
#initialize ⇒ InMemoryStorage
constructor
A new instance of InMemoryStorage.
- #save_client_information(info) ⇒ Object
- #save_tokens(tokens) ⇒ Object
Constructor Details
#initialize ⇒ InMemoryStorage
Returns a new instance of InMemoryStorage.
28 29 30 31 |
# File 'lib/mcp/client/oauth/in_memory_storage.rb', line 28 def initialize @tokens = nil @client_information = nil end |
Instance Attribute Details
#client_information ⇒ Object
Returns the value of attribute client_information.
26 27 28 |
# File 'lib/mcp/client/oauth/in_memory_storage.rb', line 26 def client_information @client_information end |
#tokens ⇒ Object
Returns the value of attribute tokens.
26 27 28 |
# File 'lib/mcp/client/oauth/in_memory_storage.rb', line 26 def tokens @tokens end |
Instance Method Details
#save_client_information(info) ⇒ Object
37 38 39 |
# File 'lib/mcp/client/oauth/in_memory_storage.rb', line 37 def save_client_information(info) @client_information = info end |
#save_tokens(tokens) ⇒ Object
33 34 35 |
# File 'lib/mcp/client/oauth/in_memory_storage.rb', line 33 def save_tokens(tokens) @tokens = tokens end |