Module: Sorcery::Controller::Submodules::External::Providers::Linkedin::LinkedinClient

Extended by:
Sorcery::Controller::Submodules::External::Protocols::Oauth1
Includes:
Base::BaseClient
Defined in:
lib/sorcery/controller/submodules/external/providers/linkedin.rb

Class Attribute Summary collapse

Class Method Summary collapse

Methods included from Sorcery::Controller::Submodules::External::Protocols::Oauth1

authorize_url, get_access_token, get_request_token, oauth_version

Methods included from Base::BaseClient

included

Class Attribute Details

.access_permissionsObject

Returns the value of attribute access_permissions.



32
33
34
# File 'lib/sorcery/controller/submodules/external/providers/linkedin.rb', line 32

def access_permissions
  @access_permissions
end

.access_tokenObject (readonly)

Returns the value of attribute access_token.



44
45
46
# File 'lib/sorcery/controller/submodules/external/providers/linkedin.rb', line 44

def access_token
  @access_token
end

.access_token_pathObject

Returns the value of attribute access_token_path.



32
33
34
# File 'lib/sorcery/controller/submodules/external/providers/linkedin.rb', line 32

def access_token_path
  @access_token_path
end

.authorize_pathObject

Returns the value of attribute authorize_path.



32
33
34
# File 'lib/sorcery/controller/submodules/external/providers/linkedin.rb', line 32

def authorize_path
  @authorize_path
end

.callback_urlObject

Returns the value of attribute callback_url.



32
33
34
# File 'lib/sorcery/controller/submodules/external/providers/linkedin.rb', line 32

def callback_url
  @callback_url
end

.keyObject

Returns the value of attribute key.



32
33
34
# File 'lib/sorcery/controller/submodules/external/providers/linkedin.rb', line 32

def key
  @key
end

.request_token_pathObject

Returns the value of attribute request_token_path.



32
33
34
# File 'lib/sorcery/controller/submodules/external/providers/linkedin.rb', line 32

def request_token_path
  @request_token_path
end

.secretObject

Returns the value of attribute secret.



32
33
34
# File 'lib/sorcery/controller/submodules/external/providers/linkedin.rb', line 32

def secret
  @secret
end

.siteObject

Returns the value of attribute site.



32
33
34
# File 'lib/sorcery/controller/submodules/external/providers/linkedin.rb', line 32

def site
  @site
end

.stateObject

Returns the value of attribute state.



32
33
34
# File 'lib/sorcery/controller/submodules/external/providers/linkedin.rb', line 32

def state
  @state
end

.user_info_fieldsObject

Returns the value of attribute user_info_fields.



32
33
34
# File 'lib/sorcery/controller/submodules/external/providers/linkedin.rb', line 32

def 
  @user_info_fields
end

.user_info_mappingObject

Returns the value of attribute user_info_mapping.



32
33
34
# File 'lib/sorcery/controller/submodules/external/providers/linkedin.rb', line 32

def 
  @user_info_mapping
end

.user_info_pathObject

Returns the value of attribute user_info_path.



32
33
34
# File 'lib/sorcery/controller/submodules/external/providers/linkedin.rb', line 32

def 
  @user_info_path
end

Class Method Details

.get_consumerObject

Override included get_consumer method to provide authorize_path



49
50
51
52
53
# File 'lib/sorcery/controller/submodules/external/providers/linkedin.rb', line 49

def get_consumer
  # Add access permissions to request token path
  @configuration[:request_token_path] += "?scope=" + self.access_permissions.join('+') unless self.access_permissions.blank? or @configuration[:request_token_path].include? "?scope="
  ::OAuth::Consumer.new(@key, @secret, @configuration)
end

.get_user_hash(access_token) ⇒ Object



65
66
67
68
69
70
71
72
# File 'lib/sorcery/controller/submodules/external/providers/linkedin.rb', line 65

def get_user_hash(access_token)
  user_hash = {}
  fields = self..join(',')
  response = access_token.get("#{@user_info_path}:(#{fields})", 'x-li-format' => 'json')
  user_hash[:user_info] = JSON.parse(response.body)
  user_hash[:uid] = user_hash[:user_info]['id'].to_s
  user_hash
end

.has_callback?Boolean

Returns:

  • (Boolean)


74
75
76
# File 'lib/sorcery/controller/submodules/external/providers/linkedin.rb', line 74

def has_callback?
  true
end

.initObject



55
56
57
58
59
60
61
62
63
# File 'lib/sorcery/controller/submodules/external/providers/linkedin.rb', line 55

def init
  @configuration = {
    site: "https://api.linkedin.com",
    authorize_path: '/uas/oauth/authenticate',
    request_token_path: '/uas/oauth/requestToken',
    access_token_path: '/uas/oauth/accessToken'
  }
  @user_info_path = "/v1/people/~"
end

.login_url(params, session) ⇒ Object

calculates and returns the url to which the user should be redirected, to get authenticated at the external provider’s site.



80
81
82
83
84
85
# File 'lib/sorcery/controller/submodules/external/providers/linkedin.rb', line 80

def (params,session)
  req_token = self.get_request_token
  session[:request_token]         = req_token.token
  session[:request_token_secret]  = req_token.secret
  self.authorize_url({:request_token => req_token.token, :request_token_secret => req_token.secret})
end

.process_callback(params, session) ⇒ Object

tries to login the user from access token



88
89
90
91
92
93
# File 'lib/sorcery/controller/submodules/external/providers/linkedin.rb', line 88

def process_callback(params,session)
  args = {}
  args.merge!({:oauth_verifier => params[:oauth_verifier], :request_token => session[:request_token], :request_token_secret => session[:request_token_secret]})
  args.merge!({:code => params[:code]}) if params[:code]
  return self.get_access_token(args)
end