deviseでユーザー登録時にメールで認証する方法
メールによる認証を導入
ユーザー登録が成功すると無事にユーザーログインできるようになるのですが、普段使っている世の中のWebサービスのように登録したタイミングで登録完了メールが飛んできて、そのメールに記載されているリンクをクリックすると正式に登録完了するという機能を実現したいと思います。
deviseでメールによる認証を導入する
deviseでメールによる認証を導入するには、deviseに用意されている機能を使うのが良いと思います。導入もかなり簡単です。/app/models/user.rbの
devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable
という行の行末に:confirmableを追加して以下のようになります。
devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable, :confirmable
上記のようにconfirmableを追加して:confirmableを読み込みます。次にメールを送信するためのSMTPサーバーの設定をしていきます。今回はGmailで送信するとしてconfig/environments/development.rbを以下のように編集します。
config.action_mailer.smtp_settings = {
:enable_starttls_auto => true,
:address => "smtp.gmail.com",
:port => 587,
:domain => 'smtp.gmail.com',
:user_name => "任意のGmailアドレス",
:password => "任意のGmailパスワード",
:authentication => 'login',
}
以上でdeviseのメールによる認証機能が設定出来ました。一点、注意点としてGmailの設定として「安全性の低いアプリのアクセス」を許可していないとGmailから送信することは出来ないので、今回のGmailからメールを送信する機能を利用するためには設定を変更しておきましょう。
無事に設定が終わると、ユーザー登録が完了したタイミングで登録した時に使用したメールアドレスに登録完了のメールが届いてリンクをクリックすると登録完了になります。
Author And Source
この問題について(deviseでユーザー登録時にメールで認証する方法), 我々は、より多くの情報をここで見つけました https://qiita.com/toda-axiaworks/items/99b0b220fe1ee1772905著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .