我允许在我的 Rails 网站上进行 Facebook 身份验证,并为此使用 Omniauth。我最近在生产中收到以下错误:
ActiveRecord::RecordInvalid:验证失败:Email 不能为空,Email 无效
通常 Facebook 注册工作正常,那么什么会导致这个特定的错误?下面是我使用 Omniauth 创建用户的代码。
def self.create_from_omniauth(auth)
where(auth.slice(:provider, :uid)).first_or_initialize.tap do |user|
user.provider = auth.provider
user.uid = auth.uid
user.name = auth.info.name
user.email = auth[:info][:email]
user.password = SecureRandom.urlsafe_base64(n=10)
user.save!
end
end