Omniauth-facebook电子邮件已存在(轨道)

时间:2018-10-15 22:10:43

标签: ruby-on-rails omniauth omniauth-facebook

我最近在实时应用程序中发现了一个错误。如果用户已经使用给定的电子邮件进行了注册,后来又尝试使用“继续使用Facebook”创建帐户:

错误
ActiveRecord :: RecordInvalid OmniauthCallbacksController#facebook 验证失败:电子邮件已经被接收。

我假设存在一种添加错误并安全返回到用户注册页面的标准方法。这是Omniauth的内置功能吗?

def self.from_omniauth(auth)

# check if a user has already signed up without a provider
if self.where(email: auth.extra.raw_info.email, provider: nil).exists?
  # add errors and return to user sign-up path
end

where(provider: auth.provider, uid: auth.uid).first_or_create do |user|
  user.provider = auth.provider
  user.uid = auth.uid
  user.email = auth.extra.raw_info.email || ''
  user.name = auth.extra.raw_info.name
  user.confirmed_at = Time.now
  user.save!
end

end

谢谢,很抱歉,我对后端如此糟糕。

0 个答案:

没有答案