Как я могу использовать проверку подлинности Devise для подтверждения того, что адрес электронной почты для регистрации принадлежит определенному домену?

#ruby-on-rails #devise

#ruby-on-rails #разработка

Вопрос:

Я хотел бы убедиться, что только пользователи с адресом электронной почты определенного домена могут зарегистрироваться на сайте, использующем Devise.

Например, если люди регистрируются с помощью электронной почты joe@mysite.com они должны получить электронное письмо с подтверждением, но если регистрация с joe@yoursite.com они должны получить сообщение об ошибке.

Ответ №1:

Раскомментировав эту строку в config/initializers/devise.rb

 # Regex to use to validate the email address
# config.email_regexp = /^([w.% -] )@([w-] .) ([w]{2,})$/i
  

и изменение его для использования домена, который я хотел ограничить:

 config.email_regexp = /A([w.% -] )@mysite.comz/i
  

сработало.

Комментарии:

1. Отличная находка! Возможно, вы захотите избежать . в mysite.com хотя.

2. Очень полезно. Если вы хотите внести в белый список несколько доменов, вы можете использовать оператор or | и сгруппировать их следующим образом: /A([w.% -] )(@firstdomain.comz)|(@seconddomain.comz)/i