Мы все настроены так, что пользователи нашего сайта могут добавлять наше приложение в Facebook и Twitter, но зацикливаются на обратном вызове из FB / Twitter, когда оно отправляется обратно на наш сайт.
Этот обратный вызов обрабатывается SessionsController, но мы считаем, что данные из FB / Twitter неправильно анализируются файлами в нашем приложении.
class SessionsController < ApplicationController
def new
@title = "Sign in"
end
def omnicreate
user = User.authenticate(params[:session][:email],
params[:session][:password])
if user.nil?
flash.now[:error] = "Invalid email/password combination."
@title = "Sign in"
render 'new'
else
sign_in user
redirect_back_or user
end
end
Наш файл omniauth.rb, содержащий наши ключи API, находится ниже:
Rails.application.config.middleware.use OmniAuth::Builder do
provider :facebook, '*************************', '**************************************'
provider :twitter, '***********************', '****************************************'
provider :google, '***********************' '****************************************'
end
routes.rb
Ourapp::Application.routes.draw do
match "/auth/:provider/callback" => "sessions#omnicreate"
resources :microposts
resources :users
resources :sessions, :only => [:new, :create, :destroy]
root :to => 'pages#home'
end