Class: OmniAuth::Strategies::Salesforce

Inherits:
OAuth2
  • Object
show all
Defined in:
lib/omniauth/strategies/salesforce.rb

Constant Summary collapse

MOBILE_USER_AGENTS =
'webos|ipod|iphone|ipad|android|blackberry|mobile'.freeze

Instance Method Summary collapse

Instance Method Details

#auth_hashObject



36
37
38
39
40
41
42
43
# File 'lib/omniauth/strategies/salesforce.rb', line 36

def auth_hash
  signed_value = access_token.params['id'] + access_token.params['issued_at']
  raw_expected_signature = OpenSSL::HMAC.digest('sha256', options.client_secret.to_s, signed_value)
  expected_signature = Base64.strict_encode64 raw_expected_signature
  signature = access_token.params['signature']
  fail! 'Salesforce user id did not match signature!' unless signature == expected_signature
  super
end

#raw_infoObject



69
70
71
72
# File 'lib/omniauth/strategies/salesforce.rb', line 69

def raw_info
  access_token.options[:mode] = :header
  @raw_info ||= access_token.post(access_token['id']).parsed
end

#request_phaseObject



25
26
27
28
29
30
31
32
33
34
# File 'lib/omniauth/strategies/salesforce.rb', line 25

def request_phase
  req = Rack::Request.new(@env)
  options.update(req.params)
  ua = req.user_agent.to_s
  unless options.key?(:display)
    mobile_request = ua.downcase =~ Regexp.new(MOBILE_USER_AGENTS)
    options[:display] = mobile_request ? 'touch' : 'page'
  end
  super
end