Class: LinkedinOpenidSignIn::CallbacksController

Inherits:
ActionController::Base
  • Object
show all
Defined in:
app/controllers/linkedin_openid_sign_in/callbacks_controller.rb

Constant Summary collapse

InvalidState =
Class.new(StandardError)

Instance Method Summary collapse

Instance Method Details

#showObject

Raises:



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'app/controllers/linkedin_openid_sign_in/callbacks_controller.rb', line 5

def show
  flash_data = flash[:linkedin_sign_in].symbolize_keys

  raise InvalidState.new("Invalid state") if params[:state].blank? || params[:state] != flash_data[:state]

  data = if params[:error].present?
           {
            error: params[:error],
            error_description: params[:error_description]
           }
         elsif token
           json = JSON.parse(token)
           decode_token(json['id_token']).merge(access_token: json['access_token'])
         else
           {
             error: 'invalid_token',
             error_description: 'Returned token is invalid'
           }
         end

  redirect_to flash_data[:redirect_url], flash: { linkedin_sign_in: data.symbolize_keys }
end