У меня есть сайт, который хорошо работает с логином Authlogic.
Я пытаюсь добавить логин Facebook в качестве опции, используя плагин authlogic_facebook_connect, но он не работает должным образом.
Я следую инструкциям, расположенным здесь:
http://github.com/jbasdf/authlogic_facebook_connect
В своей регистрационной форме я добавил кнопку подключения к Facebook, используя описанную процедуру, и при нажатии на нее она успешно отправляет в форму подлинный пользовательский токен, и больше ничего, что, по моему мнению, является ожидаемым результатом , Код контроллера предельно прост:
@new_user = User.new(params[:user])
@new_user.save
В моей модели User я добавил следующий метод before_connect, который никогда не вызывается:
def before_connect(facebook_session)
self.email = facebook_session.user.email
reset_persistence_token
end
Я знаю, что это не вызывается, потому что даже если я добавлю строку типа raise "Error'
в before_connect, никакой ошибки не произойдет.
Фактическое сохранение не удалось из-за ряда собственных внутренних проверок authlogic. Я получаю:
- Электронная почта слишком короткая (минимум 6 символов)
- Электронная почта должна выглядеть как адрес электронной почты.
- Пароль слишком короткий (минимум 4 символа)
- Подтверждение пароля слишком короткое (минимум 4 символа)
Конечно, все они пусты, потому что ничего не публикуется и пароль даже не ожидается. Я предполагаю, что Authlogic выполняет тесты паролей, потому что у меня есть поле пароля в базе данных, которое мне нужно сохранить, чтобы заставить работать регулярные логины.
Что я здесь не так делаю?