Module: AuthorizationHeaderParser

Extended by:
AuthorizationHeaderParser
Included in:
AuthorizationHeaderParser
Defined in:
lib/authorization_header_parser.rb

Defined Under Namespace

Classes: InvalidHeader, ParseError

Constant Summary collapse

VERSION =
'1.1.1'

Instance Method Summary collapse

Instance Method Details

#parse(value) ⇒ Object

Parse a custom scheme + params Authorization header.

parse('absurd-auth token="12345"') #=> ['absurd-auth', {'token' => '12345'}]

Raises:



22
23
24
25
26
27
28
29
# File 'lib/authorization_header_parser.rb', line 22

def parse(value)
  scanner = StringScanner.new(value)
  scheme = scanner.scan(NON_WHITESPACE)
  raise InvalidHeader, "Scheme not provided" unless scheme
  scanner.skip(WHITESPACE)

  [scheme.strip, extract_params_from_scanner(scanner)]
end

#parse_params(string) ⇒ Object

Parse Authorization params. Most useful in combination with Rack::Auth::AbstractRequest

For instance, with ‘Authorization: absurd-auth token=“12345”’:

auth = Rack::Auth::AbstractRequest.new(env)
params = parse(auth.params) #=> {'token' => '12345}


37
38
39
# File 'lib/authorization_header_parser.rb', line 37

def parse_params(string)
  extract_params_from_scanner(StringScanner.new(string))
end