class OAuth2::Authenticator
Attributes
id[R]
mode[R]
secret[R]
Public Class Methods
encode_basic_auth(user, password)
click to toggle source
# File lib/oauth2/authenticator.rb, line 33 def self.encode_basic_auth(user, password) 'Basic ' + Base64.encode64(user + ':' + password).delete("\n") end
new(id, secret, mode)
click to toggle source
# File lib/oauth2/authenticator.rb, line 7 def initialize(id, secret, mode) @id = id @secret = secret @mode = mode end
Public Instance Methods
apply(params)
click to toggle source
Apply the request credentials used to authenticate to the Authorization Server
Depending on configuration, this might be as request params or as an Authorization header.
User-provided params and header take precedence.
@param [Hash] params a Hash of params for the token endpoint @return [Hash] params amended with appropriate authentication details
# File lib/oauth2/authenticator.rb, line 22 def apply(params) case mode.to_sym when :basic_auth apply_basic_auth(params) when :request_body apply_params_auth(params) else raise NotImplementedError end end
Private Instance Methods
apply_basic_auth(params)
click to toggle source
Adds an `Authorization` header with Basic Auth credentials if and only if it is not already set in the params.
# File lib/oauth2/authenticator.rb, line 47 def apply_basic_auth(params) headers = params.fetch(:headers, {}) headers = basic_auth_header.merge(headers) params.merge(:headers => headers) end
apply_params_auth(params)
click to toggle source
Adds client_id and client_secret request parameters if they are not already set.
# File lib/oauth2/authenticator.rb, line 41 def apply_params_auth(params) {'client_id' => id, 'client_secret' => secret}.merge(params) end
basic_auth_header()
click to toggle source
@see tools.ietf.org/html/rfc2617#section-2
# File lib/oauth2/authenticator.rb, line 54 def basic_auth_header {'Authorization' => self.class.encode_basic_auth(id, secret)} end