From 13c6b4935b2b0f0ec6e18ed21efc87997c3017a2 Mon Sep 17 00:00:00 2001 From: Prelang Builder Date: Thu, 27 Feb 2014 23:58:30 +0000 Subject: [PATCH] Created Omniauth callbacks controller for Facebook --- .../users/omniauth_callbacks_controller.rb | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 app/controllers/users/omniauth_callbacks_controller.rb diff --git a/app/controllers/users/omniauth_callbacks_controller.rb b/app/controllers/users/omniauth_callbacks_controller.rb new file mode 100644 index 0000000..feea94a --- /dev/null +++ b/app/controllers/users/omniauth_callbacks_controller.rb @@ -0,0 +1,22 @@ +class Users::OmniauthCallbacksController < Devise::OmniauthCallbacksController + include ApplicationHelper + + def facebook + + # Attempt to find the User + @user = User.find_for_facebook_oauth(request.env["omniauth.auth"], current_user) + + if @user.persisted? + sign_in_and_redirect @user, :event => :authentication # This will throw if @user is not activated + set_flash_message(:notice, :success, :kind => "Facebook") if is_navigational_format? + else + #session["devise.facebook_data"] = request.env["omniauth.auth"] + redirect_to new_user_registration_url + end + end + + def passthru + render :file => "#{Rails.root}/public/404.html", :status => 404, :layout => false + end + +end