Class: HighLevel::Middleware::Authentication

Inherits:
Faraday::Middleware
  • Object
show all
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

Constructor Details

#initialize(app, config:, resolver: nil, storage: nil) ⇒ Authentication

Returns a new instance of Authentication.

Parameters:



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