Class: Devise::FacebookOpenGraphAuthenticatable::Strategies::FacebookOpenGraphAuthenticatable
- Inherits:
-
Strategies::Base
- Object
- Strategies::Base
- Devise::FacebookOpenGraphAuthenticatable::Strategies::FacebookOpenGraphAuthenticatable
- Defined in:
- lib/devise_facebook_open_graph/strategy.rb
Instance Method Summary collapse
-
#authenticate! ⇒ Object
Authenticates the user as if this requests seems valid as FacebookOpenGraphAuthenticatable.
-
#valid? ⇒ Boolean
This strategy is valid if Facebook has set it’s session data object in current application’s domain cookies.
Instance Method Details
#authenticate! ⇒ Object
Authenticates the user as if this requests seems valid as FacebookOpenGraphAuthenticatable
Tries to auto create the user if configured to do so.
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/devise_facebook_open_graph/strategy.rb', line 23 def authenticate! session = DeviseFacebookOpenGraph::Facebook::Session.new() if session.valid? klass = mapping.to user = klass.authenticate_facebook_user session.uid if user.blank? && klass.facebook_auto_create_account? user = klass.new user.facebook_session = session user.set_facebook_credentials_from_session! user.run_callbacks :create_by_facebook do begin user.save(:validate => klass.run_validations_when_creating_facebook_user) rescue ActiveRecord::RecordNotUnique fail!(:not_unique_user_on_creation) and return end end if klass.run_validations_when_creating_facebook_user && !user.persisted? fail!(:invalid_facebook_user_on_creation) and return end end if user.present? && user.persisted? user.facebook_session = session user.run_callbacks :connecting_to_facebook do success!(user) and return end else fail!(:facebook_user_not_found_locally) and return end else fail!(:invalid_facebook_session) and return end end |
#valid? ⇒ Boolean
This strategy is valid if Facebook has set it’s session data object in current application’s domain cookies.
13 14 15 |
# File 'lib/devise_facebook_open_graph/strategy.rb', line 13 def valid? mapping.to.respond_to?(:authenticate_facebook_user) && .has_key?(::DeviseFacebookOpenGraph::Facebook::Config.facebook_session_name) end |