Module: OmniAuth::Strategies::Oidc::Request

Included in:
OmniAuth::Strategies::Oidc
Defined in:
lib/omniauth/strategies/oidc/request.rb

Overview

Code request phase

Instance Method Summary collapse

Instance Method Details

#authorize_uriObject

rubocop:disable Metrics/AbcSize



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/omniauth/strategies/oidc/request.rb', line 18

def authorize_uri # rubocop:disable Metrics/AbcSize
  opts = request_options

  opts.merge!(options.extra_authorize_params) unless options.extra_authorize_params.empty?

  options.allow_authorize_params.each do |key|
    opts[key] = request.params[key.to_s] unless opts.key?(key)
  end

  if options.pkce
    verifier = options.pkce_verifier ? options.pkce_verifier.call : SecureRandom.hex(64)

    opts.merge!(pkce_authorize_params(verifier))
    session[session_key("pkce.verifier")] = verifier
  end

  # Add redirect_uri and extra_params to opts
  opts[:redirect_uri] = redirect_uri
  opts[:extra_params] = opts.compact

  client.authorization_uri(opts)
end

#request_phaseObject



8
9
10
11
12
13
14
15
16
# File 'lib/omniauth/strategies/oidc/request.rb', line 8

def request_phase
  OmniauthOidc::Logging.instrument("request_phase.start", provider: name) do
    @identifier = client_options.identifier
    @secret = secret

    set_client_options_for_request_phase
    redirect authorize_uri
  end
end