Электронная почта Omniauth-facebook существует (Rails) - PullRequest
0 голосов
/ 16 октября 2018

Я недавно обнаружил ошибку в моем живом приложении.Если пользователь уже зарегистрировался с указанным адресом электронной почты и позже пытается создать учетную запись с помощью «Продолжить с 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

Спасибо, и извините, я так ужасен с back-end.

...