Class: HighLevel::Middleware::Authentication
- Inherits:
-
Faraday::Middleware
- Object
- Faraday::Middleware
- HighLevel::Middleware::Authentication
- Defined in:
- lib/high_level/middleware/authentication.rb
Overview
Injects the Authorization and Version headers. When the request carries a CONTEXT_KEY entry in its Faraday options context (set by generated resource methods), the bearer token is resolved through TokenResolver; otherwise it falls back to a simple credential-priority chain.
Constant Summary collapse
- CONTEXT_KEY =
The request-options context key under which generated resource code stashes the operation’s security requirements.
:high_level_security
Instance Method Summary collapse
-
#initialize(app, config:, resolver: nil, storage: nil) ⇒ Authentication
constructor
A new instance of Authentication.
-
#on_request(env) ⇒ Object
Faraday request callback.
Constructor Details
#initialize(app, config:, resolver: nil, storage: nil) ⇒ Authentication
Returns a new instance of Authentication.
24 25 26 27 28 |
# File 'lib/high_level/middleware/authentication.rb', line 24 def initialize(app, config:, resolver: nil, storage: nil) super(app) @config = config @resolver = resolver || TokenResolver.new(config: config, storage: storage) end |
Instance Method Details
#on_request(env) ⇒ Object
Faraday request callback. Sets the Version header and, unless one is already present, an Authorization: Bearer header.
32 33 34 35 36 37 |
# File 'lib/high_level/middleware/authentication.rb', line 32 def on_request(env) env.request_headers["Version"] ||= @config.api_version return if env.request_headers["Authorization"] env.request_headers["Authorization"] = "Bearer #{resolve_token(env)}" end |