Class: OmniAuth::Strategies::Facebook
- Inherits:
-
OAuth2
- Object
- OAuth2
- OmniAuth::Strategies::Facebook
- Defined in:
- lib/omniauth/strategies/facebook.rb
Defined Under Namespace
Classes: NoAuthorizationCodeError
Constant Summary collapse
- DEFAULT_SCOPE =
'email'
Instance Method Summary collapse
- #access_token_options ⇒ Object
-
#authorize_params ⇒ Object
You can pass
display
,scope
, orauth_type
params to the auth request, if you need to set them dynamically. - #callback_phase ⇒ Object
-
#callback_url ⇒ Object
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: github.com/facebook/facebook-php-sdk/blob/master/src/base_facebook.php#L477.
- #info_options ⇒ Object
- #raw_info ⇒ Object
Instance Method Details
#access_token_options ⇒ Object
91 92 93 |
# File 'lib/omniauth/strategies/facebook.rb', line 91 def ..inject({}) { |h,(k,v)| h[k.to_sym] = v; h } end |
#authorize_params ⇒ Object
You can pass display
, scope
, or auth_type
params to the auth request, if you need to set them dynamically. You can also set these options in the OmniAuth config :authorize_params option.
For example: /auth/facebook?display=popup
99 100 101 102 103 104 105 106 107 108 109 |
# File 'lib/omniauth/strategies/facebook.rb', line 99 def super.tap do |params| %w[display scope auth_type].each do |v| if request.params[v] params[v.to_sym] = request.params[v] end end params[:scope] ||= DEFAULT_SCOPE end end |
#callback_phase ⇒ Object
69 70 71 72 73 74 75 76 77 |
# File 'lib/omniauth/strategies/facebook.rb', line 69 def callback_phase 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 ⇒ Object
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
82 83 84 85 86 87 88 89 |
# 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 [:callback_url] || (full_host + script_name + callback_path) end end |
#info_options ⇒ Object
61 62 63 64 65 66 67 |
# File 'lib/omniauth/strategies/facebook.rb', line 61 def params = {:appsecret_proof => appsecret_proof} params.merge!({:fields => ([:info_fields] || 'name,email')}) params.merge!({:locale => [:locale]}) if [:locale] { :params => params } end |
#raw_info ⇒ Object
57 58 59 |
# File 'lib/omniauth/strategies/facebook.rb', line 57 def raw_info @raw_info ||= access_token.get('me', ).parsed || {} end |