class GrapeDeviseAuth::AuthHeaders
Attributes
request_start[R]
resource[R]
Public Class Methods
new(warden, mapping, request_start, data)
click to toggle source
# File lib/grape_devise_auth/auth_headers.rb, line 5 def initialize(warden, mapping, request_start, data) @resource = warden.user(mapping) @request_start = request_start @data = data end
Public Instance Methods
headers()
click to toggle source
# File lib/grape_devise_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_auth/auth_headers.rb, line 34 def auth_headers_from_resource auth_headers = {} resource.with_lock do if !GrapeDeviseAuth.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_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_auth/auth_headers.rb, line 27 def within_batch_request_window? end_of_window = Time.parse(resource.tokens[client_id]['updated_at']) + GrapeDeviseAuth.batch_request_buffer_throttle request_start < end_of_window end