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`, optional `refresh_token`, `expires_in`, `scope`, etc.).
-
‘client_information`: the hash returned by Dynamic Client Registration or supplied as pre-registered credentials (`client_id`, optional `client_secret`, optional `token_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 |