Class: OmniauthCallbacksController
- Inherits:
-
Devise::OmniauthCallbacksController
- Object
- Devise::OmniauthCallbacksController
- OmniauthCallbacksController
- Defined in:
- lib/generators/happy_seed/omniauth/templates/app/controllers/omniauth_callbacks_controller.rb
Instance Method Summary collapse
Instance Method Details
#facebook ⇒ Object
5 6 7 |
# File 'lib/generators/happy_seed/omniauth/templates/app/controllers/omniauth_callbacks_controller.rb', line 5 def facebook generic_callback( 'facebook' ) end |
#generic_callback(provider) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/generators/happy_seed/omniauth/templates/app/controllers/omniauth_callbacks_controller.rb', line 10 def generic_callback( provider ) @identity = Identity.find_for_oauth env["omniauth.auth"] @user = @identity.user || current_user if @user.nil? @user = User.create( email: @identity.email || "" ) @identity.update_attribute( :user_id, @user.id ) end if @user.email.blank? && @identity.email @user.update_attribute( :email, @identity.email) end if @user.persisted? @identity.update_attribute( :user_id, @user.id ) # This is because we've created the user manually, and Device expects a # FormUser class (with the validations) @user = FormUser.find @user.id sign_in_and_redirect @user, event: :authentication (:notice, :success, kind: provider.capitalize) if else session["devise.#{provider}_data"] = env["omniauth.auth"] redirect_to new_user_registration_url end end |
#instagram ⇒ Object
2 3 4 |
# File 'lib/generators/happy_seed/omniauth/templates/app/controllers/omniauth_callbacks_controller.rb', line 2 def instagram generic_callback( 'instagram' ) end |