Skip to content
Snippets Groups Projects
Forked from PortalMEC / portalmec
1769 commits behind the upstream repository.
callbacks_controller.rb 788 B
class CallbacksController < Devise::OmniauthCallbacksController

  def facebook
    request_data("Facebook","devise.facebook_data")
  end

  def twitter
    request_data("Twitter","devise.twitter_data")
  end

  def google_oauth2
    request_data("Google","devise.google_oauth2_data")
  end

  private

  def request_data(provider,provider_session)
    @user = User.from_omniauth(request.env["omniauth.auth"])

      if @user.persisted?
        sign_in_and_redirect @user, :event => :authentication
        flash[:notice] = I18n.t "devise.omniauth_callbacks.success", :kind => provider
      else
        session[provider_session] = request.env["omniauth.auth"]
        redirect_to new_user_registration_url
      end

      def failure
        redirect_to root_path
      end
  end

end