Parent

Object::OAuth2

Public: A simple middleware that adds an access token to each request.

The token is added as both “access_token” query parameter and the “Authorization” HTTP request header. However, an explicit “access_token” parameter or “Authorization” header for the current request are not overriden.

Examples

# configure default token:
OAuth2.new(app, 'abc123')

# configure query parameter name:
OAuth2.new(app, 'abc123', :param_name => 'my_oauth_token')

# default token value is optional:
OAuth2.new(app, :param_name => 'my_oauth_token')

Attributes

param_name[R]

Public Class Methods

new(app, token = nil, options = {}) click to toggle source
# File lib/faraday_middleware/request/oauth2.rb, line 43
def initialize(app, token = nil, options = {})
  super(app)
  options, token = token, nil if token.is_a? Hash
  @token = token && token.to_s
  @param_name = options.fetch(:param_name, PARAM_NAME).to_s
  raise ArgumentError, ":param_name can't be blank" if @param_name.empty?
end

Public Instance Methods

call(env) click to toggle source
# File lib/faraday_middleware/request/oauth2.rb, line 32
def call(env)
  params = { param_name => @token }.update query_params(env[:url])

  if token = params[param_name] and !token.empty?
    env[:url].query = build_query params
    env[:request_headers][AUTH_HEADER] ||= %(Token token="#{token}")
  end

  @app.call env
end
query_params(url) click to toggle source
# File lib/faraday_middleware/request/oauth2.rb, line 51
def query_params(url)
  if url.query.nil? or url.query.empty?
    {}
  else
    parse_query url.query
  end
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.