class GrapeDeviseTokenAuth::AuthHeaders

Attributes

request_start[R]
resource[R]

Public Class Methods

new(warden, mapping, request_start, data) click to toggle source
# File lib/grape_devise_token_auth/auth_headers.rb, line 5
def initialize(warden, mapping, request_start, data)
  @resource = warden.user(:user)
  @request_start = request_start
  @data = data
end

Public Instance Methods

headers() click to toggle source
# File lib/grape_devise_token_auth/auth_headers.rb, line 11
def headers
  return {} unless resource && resource.valid? && client_id
  auth_headers_from_resource
end

Private Instance Methods

auth_headers_from_resource() click to toggle source
# File lib/grape_devise_token_auth/auth_headers.rb, line 34
def auth_headers_from_resource
  auth_headers = {}
  resource.with_lock do
    if !GrapeDeviseTokenAuth.change_headers_on_each_request
      auth_headers = resource.extend_batch_buffer(token, client_id)
    elsif batch_request?
      resource.extend_batch_buffer(token, client_id)
      # don't set any headers in a batch request
    else
      auth_headers = resource.create_new_auth_token(client_id)
    end
  end
  auth_headers
end
batch_request?() click to toggle source
# File lib/grape_devise_token_auth/auth_headers.rb, line 21
def batch_request?
  @batch_request ||= resource.tokens[client_id] &&
                     resource.tokens[client_id]['updated_at'] &&
                     within_batch_request_window?
end
within_batch_request_window?() click to toggle source
# File lib/grape_devise_token_auth/auth_headers.rb, line 27
def within_batch_request_window?
  end_of_window = Time.parse(resource.tokens[client_id]['updated_at']) +
                  GrapeDeviseTokenAuth.batch_request_buffer_throttle

  request_start < end_of_window
end