2010-12-01 4 views
5

私は、特定のドメインの電子メールアドレスを持つ人だけが、Deviseを使用しているサイトにサインアップできることを確認したいと思います。Devise認証を使用して、サインアップ電子メールアドレスが特定のドメインからのものであることを検証するにはどうすればよいですか?

たとえば、[email protected]の電子メールでサインアップすると、確認メールが届きますが、[email protected]でサインインするとエラーメッセージが表示されます。設定/初期化子/ devise.rb

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

でこの行をコメント解除し、それは私がに制限したいドメインを使用するように変更

答えて

14

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

はトリックをしました。

+2

ニースが見つかりました!あなたは、エスケープしたいかもしれません。しかし、mysite.comで。 –

+1

非常に便利です。複数のドメインをホワイトリストに追加する場合は、演算子 '|'を使用して、それらをグループ化することができます: '/ \ A([\ w \。%\ + \ - ] +)(@ firstdomain \ .com \ z)| (@seconddomain \ .com \ z)/ i' – timsvoice

関連する問題