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