Ruby on rails RubyonRails:将Facebook登录添加到现有Authlogic登录

Ruby on rails RubyonRails:将Facebook登录添加到现有Authlogic登录,ruby-on-rails,facebook,authlogic,Ruby On Rails,Facebook,Authlogic,我有一个现有的网站,是与Authlogic登录工作良好 我正在尝试使用authlogic\u Facebook\u connect插件将Facebook登录添加为一个选项,但它无法正常工作 我遵循此处的说明: 在我的注册表单上,我使用概述的过程添加了Facebook connect按钮,当单击该按钮时,它将使用用户的Authentity_令牌成功地发布到表单中,我相信这是预期的结果。控制器代码非常简单: @new_user = User.new(params[:user]) @new_user

我有一个现有的网站,是与Authlogic登录工作良好

我正在尝试使用authlogic\u Facebook\u connect插件将Facebook登录添加为一个选项,但它无法正常工作

我遵循此处的说明:

在我的注册表单上,我使用概述的过程添加了Facebook connect按钮,当单击该按钮时,它将使用用户的Authentity_令牌成功地发布到表单中,我相信这是预期的结果。控制器代码非常简单:

@new_user = User.new(params[:user])
@new_user.save
在我的用户模型中,我添加了以下before_connect方法,该方法从未被调用:

def before_connect(facebook_session)
  self.email = facebook_session.user.email
  reset_persistence_token
end 
我知道这不会被调用,因为即使我在连接之前添加了一行,比如
raise“Error”
,也不会发生错误

由于authlogic自身的许多内部验证,实际保存失败。我得到:

  • 电子邮件太短(至少6个字符)
  • 电子邮件应该看起来像电子邮件地址
  • 密码太短(最少4个字符)
  • 密码确认太短(最少4个字符)
当然,这些都是空的,因为没有发布任何内容,甚至不需要密码。我假设Authlogic正在运行密码测试,因为数据库中有一个密码字段,我需要保留该字段才能正常登录


我做错了什么?

我不确定这是不是正确的方法,但最终通过AuthLogic禁用所有有问题的验证,并在我的应用程序中自己重新编码,实现了这一点

这是我在用户模型中包含的代码:

acts_as_authentic do |c|
  c.validate_login_field = false
  c.validate_email_field = false
  c.validate_password_field = false
end