lib/omniauth/strategies/auth0.rb in omniauth-auth0-2.1.0 vs lib/omniauth/strategies/auth0.rb in omniauth-auth0-2.2.0

- old
+ new

@@ -1,14 +1,19 @@ +# frozen_string_literal: true + require 'base64' require 'uri' require 'omniauth-oauth2' require 'omniauth/auth0/jwt_validator' +require 'omniauth/auth0/telemetry' module OmniAuth module Strategies # Auth0 OmniAuth strategy class Auth0 < OmniAuth::Strategies::OAuth2 + include OmniAuth::Auth0::Telemetry + option :name, 'auth0' args %i[ client_id client_secret @@ -70,17 +75,21 @@ end # Define the parameters used for the /authorize endpoint def authorize_params params = super - params['auth0Client'] = client_info - parse_query = Rack::Utils.parse_query(request.query_string) - params['connection'] = parse_query['connection'] - params['prompt'] = parse_query['prompt'] + parsed_query = Rack::Utils.parse_query(request.query_string) + params['connection'] = parsed_query['connection'] + params['prompt'] = parsed_query['prompt'] params end + def build_access_token + options.token_params[:headers] = { 'Auth0-Client' => telemetry_encoded } + super + end + # Declarative override for the request phase of authentication def request_phase if no_client_id? # Do we have a client_id for this Application? fail!(:missing_client_id) @@ -122,18 +131,9 @@ # Normalize a domain to a URL. def domain_url domain_url = URI(options.domain) domain_url = URI("https://#{domain_url}") if domain_url.scheme.nil? domain_url.to_s - end - - # Build the auth0Client URL parameter for metrics. - def client_info - client_info = JSON.dump( - name: 'omniauth-auth0', - version: OmniAuth::Auth0::VERSION - ) - Base64.urlsafe_encode64(client_info) end end end end