Я пытаюсь интегрировать социальный вход в Facebook без использования Devise.Я установил и запустил учетную запись разработчика в Facebook, и я могу войти через Facebook через мое приложение, но форма всегда возвращается на страницу входа с добавлением # = в конце.Вот фрагмент кода моего контроллера сеанса:
if request.env['omniauth.auth']
user = User.find_or_create_from_auth_hash(request.env['omniauth.auth'])
session[:user_id] = user.id
flash[:failure] = "Facebook login failed "
redirect_to user
def self.find_or_create_from_auth_hash(auth)
where(provider: auth.provider, uid: auth.uid).first_or_initialize.tap do |user|
user.provider = auth.provider
user.id = auth.uid
user.fname = auth.info.first_name
user.lname = auth.info.last_name
user.email = auth.info.email
#user.picture = auth.info.image
user.save!
end
end
Даже когда я пытаюсь жестко кодировать идентификатор сеанса, используя: "session [: user_id] = 5", я не думаю, что идентификатор сеанса вообще когда-либосохраняется, что заставляет меня думать, что исходный код if фактически никогда не запускается.Я также пытался перенаправить на случайные страницы, но безрезультатно.Что-то не так с моим оператором if, поскольку после него ничего не запускается, или что?
Вот мои маршруты:
Rails.application.routes.draw do
get 'auth/failure', to: redirect('/')
post 'auth/facebook/callback', to: 'sessions#create'
post 'auth/facebook', to: 'sessions#create'
Я также пробовал маршруты для "auth /facebook / callback "и" auth / facebook "при получении запросов, не уверен, что происходит.По сути, когда страница возвращается, она на самом деле не идет на сеансы # создает часть контроллера (сообщения об ошибках не отображаются, ничего не происходит после того, как она возвращается со страницы входа в Facebook)
Я знаю, что все это сформулированодовольно плохо, но я искал темы и не могу найти подобную проблему, любая помощь будет признательна.
Если вы хотите увидеть проблему самостоятельно, это можно увидеть здесь: https://acupofsugar.herokuapp.com/login