class BigSession::FaradayBigSession
This middleware will add BigSession
header to request_headers of outgoing connections done by Faraday
Public Class Methods
activate()
click to toggle source
# File lib/big_session/faraday.rb, line 11 def activate ::Faraday::Middleware.register_middleware big_session: ::BigSession::FaradayBigSession end
new(app, header_secret = nil)
click to toggle source
# File lib/big_session/faraday.rb, line 16 def initialize(app, header_secret = nil) @app = app @header_secret = header_secret end
Public Instance Methods
call(env)
click to toggle source
# File lib/big_session/faraday.rb, line 21 def call(env) if SessionId.current headers = { ::BigSession::BIG_SESSION_HEADER_NAME => SessionId.current, } if @header_secret sig = OpenSSL::HMAC.hexdigest('sha256', @header_secret, SessionId.current) headers[::BigSession::BIG_SESSION_SIGNATURE_HEADER_NAME] = sig end env[:request_headers].merge!(headers) end @app.call(env) end