Module: OpenIDTokenProxy::Concerns::CallbackController

Extended by:
ActiveSupport::Concern
Included in:
OpenIDTokenProxy::CallbackController
Defined in:
lib/openid_token_proxy/concerns/callback_controller.rb

Instance Method Summary collapse

Instance Method Details

#handleObject



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/openid_token_proxy/concerns/callback_controller.rb', line 6

def handle
  unless code = params[:code]
    render text: "Required parameter 'code' missing.", status: :bad_request
    return
  end

  begin
    token = OpenIDTokenProxy.client.retrieve_token!(auth_code: code)
  rescue OpenIDTokenProxy::Client::AuthCodeError => error
    render text: "Could not exchange authorization code: #{error.message}.",
           status: :bad_request
    return
  end

  config = OpenIDTokenProxy.config
  uri = instance_exec token, &config.token_acquirement_hook
  redirect_to uri || main_app.root_url unless performed?
end