class OmniAuth::Strategies::BraintreeAuth
Public Instance Methods
build_access_token()
click to toggle source
Calls superclass method
# File lib/omniauth/strategies/braintree_auth.rb, line 47 def build_access_token options.token_params.merge!(:headers => authorization_header) super end
request_phase()
click to toggle source
# File lib/omniauth/strategies/braintree_auth.rb, line 39 def request_phase # Braintree requires a custom signature for authorization requests base_url = client.auth_code.authorize_url(authorize_params) signature = compute_signature(base_url) authorize_url = "#{base_url}&signature=#{signature}&algorithm=SHA256" redirect authorize_url end
setup_phase()
click to toggle source
# File lib/omniauth/strategies/braintree_auth.rb, line 31 def setup_phase options.client_options.site = "https://api.braintreegateway.com" if options.environment == "production" # application/xml content type is not recognized as XML by OAuth2 gem, so we must register it manually # https://github.com/intridea/oauth2/pull/255 would add it as a registered content type ::OAuth2::Response.register_parser(:xml, "application/xml") { |body| MultiXml.parse(body) } end
Private Instance Methods
compute_signature(url)
click to toggle source
# File lib/omniauth/strategies/braintree_auth.rb, line 58 def compute_signature(url) key_digest = OpenSSL::Digest::SHA256.digest(options["client_secret"]) OpenSSL::HMAC.hexdigest(OpenSSL::Digest::SHA256.new, key_digest, url) end