class OmniAuth::Strategies::Facebook
Constants
- DEFAULT_SCOPE
Public Instance Methods
access_token_options()
click to toggle source
# File lib/omniauth/strategies/facebook.rb, line 91 def access_token_options options.access_token_options.inject({}) { |h,(k,v)| h[k.to_sym] = v; h } end
callback_phase()
click to toggle source
Calls superclass method
# File lib/omniauth/strategies/facebook.rb, line 69 def callback_phase with_authorization_code! do super end rescue NoAuthorizationCodeError => e fail!(:no_authorization_code, e) rescue OmniAuth::Facebook::SignedRequest::UnknownSignatureAlgorithmError => e fail!(:unknown_signature_algorithm, e) end
callback_url()
click to toggle source
NOTE If we're using code from the signed request then FB sets the redirect_uri to '' during the authorize
phase and it must match during the access_token phase: https://github.com/facebook/facebook-php-sdk/blob/master/src/base_facebook.php#L477
# File lib/omniauth/strategies/facebook.rb, line 82 def callback_url if @authorization_code_from_signed_request_in_cookie '' else # Fixes regression in omniauth-oauth2 v1.4.0 by https://github.com/intridea/omniauth-oauth2/commit/85fdbe117c2a4400d001a6368cc359d88f40abc7 options[:callback_url] || (full_host + script_name + callback_path) end end
info_options()
click to toggle source
# File lib/omniauth/strategies/facebook.rb, line 61 def info_options params = {:appsecret_proof => appsecret_proof} params.merge!({:fields => (options[:info_fields] || 'name,email')}) params.merge!({:locale => options[:locale]}) if options[:locale] { :params => params } end
raw_info()
click to toggle source
# File lib/omniauth/strategies/facebook.rb, line 57 def raw_info @raw_info ||= access_token.get('me', info_options).parsed || {} end
Protected Instance Methods
build_access_token()
click to toggle source
Calls superclass method
# File lib/omniauth/strategies/facebook.rb, line 113 def build_access_token super.tap do |token| token.options.merge!(access_token_options) end end
Private Instance Methods
appsecret_proof()
click to toggle source
# File lib/omniauth/strategies/facebook.rb, line 177 def appsecret_proof @appsecret_proof ||= OpenSSL::HMAC.hexdigest(OpenSSL::Digest::SHA256.new, client.secret, access_token.token) end
image_url(uid, options)
click to toggle source
# File lib/omniauth/strategies/facebook.rb, line 162 def image_url(uid, options) uri_class = options[:secure_image_url] ? URI::HTTPS : URI::HTTP site_uri = URI.parse(client.site) url = uri_class.build({:host => site_uri.host, :path => "#{site_uri.path}/#{uid}/picture"}) query = if options[:image_size].is_a?(String) || options[:image_size].is_a?(Symbol) { :type => options[:image_size] } elsif options[:image_size].is_a?(Hash) options[:image_size] end url.query = Rack::Utils.build_query(query) if query url.to_s end
prune!(hash)
click to toggle source
# File lib/omniauth/strategies/facebook.rb, line 155 def prune!(hash) hash.delete_if do |_, value| prune!(value) if value.is_a?(Hash) value.nil? || (value.respond_to?(:empty?) && value.empty?) end end