module Dispatch::Auth

Constants

VERSION

Public Class Methods

authenticate_request!(env) click to toggle source
# File lib/dispatch/auth.rb, line 9
def authenticate_request!(env)
  prepare_headers(env)
  resolve_errors get(ENV['AUTH_ENDPOINT_URL'])
end
get_me(env) click to toggle source
# File lib/dispatch/auth.rb, line 14
def get_me(env)
  prepare_headers(env)
  resolve_errors get(ENV['AUTH_ENDPOINT_URL'])
end

Private Class Methods

get_auth_header(env) click to toggle source
# File lib/dispatch/auth.rb, line 20
def get_auth_header(env)
  r = Rack::Request.new(env)
  header = r.env['HTTP_AUTHORIZATION']
  token = r.params['access_token'] || r.params['bearer_token']
  header ||= "Bearer #{token}" if token
  raise(Dispatch::Auth::TokenMissingError) unless header
  header
end
prepare_headers(env) click to toggle source
# File lib/dispatch/auth.rb, line 29
def prepare_headers(env)
  headers.merge!('Content-Type' => 'application/json')
  headers.merge!('Authorization' => get_auth_header(env)) || raise(Dispatch::Auth::TokenMissingError)
end
resolve_errors(response) click to toggle source
# File lib/dispatch/auth.rb, line 34
def resolve_errors(response)
  case response.code
  when 401
    raise Dispatch::Auth::NotAuthenticatedError
  when 403
    raise Dispatch::Auth::NotAuthorizedError
  end
  response
end