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