2010-12-01 5 views
5

Chciałbym się upewnić, że tylko osoby z adresem e-mail danej domeny mogą się zarejestrować w witrynie korzystającej z Devise.Jak korzystać z funkcji rozpoznawania uwierzytelnień w celu sprawdzenia, czy adres e-mail rejestracji pochodzi z określonej domeny?

Na przykład, jeśli ludzie zarejestrują się za pomocą adresu e-mail [email protected], powinni otrzymać wiadomość e-mail z potwierdzeniem, ale jeśli zarejestrują się pod adresem [email protected], powinien otrzymać komunikat o błędzie.

Odpowiedz

14

odkomentowanie tej linii w config/inicjalizatory/devise.rb

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

i zmieniając go do używania domeny chciałem ograniczyć do:

config.email_regexp = /\A([\w\.%\+\-]+)@mysite\.com\z/i 

załatwiło sprawę.

+2

Nice find! Możesz chcieć uciec. na stronie mysite.com. –

+1

Bardzo przydatne. Jeśli chcesz dodać wiele domen do białej listy, możesz użyć operatora '|' i zgrupować je w następujący sposób: '/ \ A ([\ w \.% \ + \ -] +) (@ firstdomain \ .com \ z) | (@seconddomain \ .com \ z)/i' – timsvoice