使用has_secure_password和oauth(例如facebook)身份验证

时间:2013-02-19 11:27:42

标签: ruby-on-rails ruby-on-rails-3.1 oauth-2.0 omniauth

我对使用这两种身份验证方案感兴趣,但将用户模型设置为has_secure_password会强制对password_digest进行验证。我很好奇是否有一种通过oauth机制创建用户的标准方法,这种方式适用于带有omniauth-facebook的rails 3.1.x.就像将test值存入password_digest或其他东西一样?或者在与has_secure_password一起使用时,可能会在某种情况下关闭验证(虽然我真的不知道我会怎么做并希望得到帮助)。

我看到有一个oauthed_user(https://github.com/rails/rails/blob/master/activemodel/test/models/oauthed_user.rb)的提交,但我不确定应该如何使用它。

thx任何信息/建议

1 个答案:

答案 0 :(得分:0)

嗯,我不知道这样做的标准方式,但我在我的应用程序中做到了这一点并且完美无缺

def create
  if user_is_from_omniauth?
    @user.password = SecureRandom.hex(9)
  end
  @user.save
end

现在您应该在不使用密码的情况下登录用户 为此,建议在数据库中放置一个布尔值,以便在更改密码或忘记密码时不应要求输入旧密码