I am trying to access the headers in a filter in sinatra. My request includes the header "HTTP_AUTH", however I can't access it. My filter is
before do
halt 403 unless request['HTTP_AUTH'] == 'test'
end
It works correctly from my rack test.
browser.get '/mypath', "CONTENT_TYPE" => "application/json", "HTTP_AUTH" => 'test'
But when I try from other sources I can't access it. If I puts request.env
I can see the token is in the request, but I can't access it.
"HTTP_CONNECTION"=>"close",
"HTTP_AUTH"=>"test",
"HTTP_ACCEPT"=>"application/json",
What am I doing wrong?
Try use
before
block withheaders
method:or in request:
Use
headers
with is justhash
I just wanted to add that if you use
headers
it will not show custom headers. For example, I set up a custom header named X-CSRF-Token which I send on every AJAX request, and this one won't show up in that hash. If you need to access custom headers, you will find them throughrequest.env
like:(Notice how rack changes X-CSRF-Token to HTTP_X_CSRF_TOKEN)