はじめに
この記事は、インターネット上の百科事典や技術情報サイト、勉強会を基に、RailsにおけるDeviseについて復習しやすいようにまとめた備忘録です。
技術的に誤っている点がございましたら、ご指摘いただけますと幸いです。
Deviseとは?
DeviseとはRailsで作成したアプリケーションに認証機能を実装できるgemの一つです。
Deviseを利用することでログイン機能を簡単に実装することができます。
Deviseの使い方
Gemfileの編集とインストール
gem 'devise'
以下の記事のGetting startedを参考にインストールします。
https://github.com/heartcombo/devise#getting-started
$ bundle install
Gemのインストール完了です。
Deviseのセットアップ
$ rails g devise:install
Deviseの設定ファイルをRailsアプリケーションにインストールするためのコマンドです。
$ rails g devise User
Deviseで認証するためのモデルを作成するコマンドです。
今回はUserモデルを作成すると想定してUserを入力しています。
$ rake db:migrate
作成したモデルを基にデータベースを作成します。
Rails5以降をインストールしている場合は、$ rails db:migrate
コマンドを使えます。
$ rails g devise:views
app/views/devise配下にDeviseで使用するビューを作成するコマンドです。
Deviseに機能を追加する
Deviseには10個のモジュールが用意されています。
以下の各モジュールの概要についてはRailsにおけるDeviseとは?から引用させていただいております。
機能 | 概要 |
---|---|
database_authenticatable | サインイン時にユーザーの正当性を検証するためにパスワードを暗号化してDBに登録します。 |
registerable | 登録処理を通してユーザーをサインアップします。また、ユーザーに自身のアカウントを編集したり削除することを許可します。 |
recoverable | パスワードをリセットし、それを通知します。 |
rememberable | 保存されたcookieから、ユーザーを記憶するためのトークンを生成・削除します。 |
trackable | サインイン回数や、サインイン時間、IPアドレスを記録します。 |
validatable | Emailやパスワードのバリデーションを提供します。独自に定義したバリデーションを追加することもできます。 |
confirmable | メールに記載されているURLをクリックして本登録を完了する、といったよくある登録方式を提供します。また、サインイン中にアカウントが認証済みかどうかを検証します。 |
lockable | 一定回数サインインを失敗するとアカウントをロックします。ロック解除にはメールによる解除か、一定時間経つと解除するといった方法があります。 |
timeoutable | 一定時間活動していないアカウントのセッションを破棄します。 |
omniauthabl | intridea/omniauthをサポートします。TwitterやFacebookなどの認証を追加したい場合は追加します。 |
Deviseが用意しているメソッド
current_user
現在ログインしているユーザーを取得することができるメソッドです。
備考
Deviseの導入方法と追加できる機能についてまとめさせていただきました。
Deviseは趣味で何回か利用していますが、学習内容をまとめておくことで理解度が高まったように感じます。
ここまで拝読していただき、ありがとうございました。
参考文献
DIVE INTO CODE MEDIA
-
RailsにおけるDeviseとは?
Github -
heartcombo/devise
Railsについての知識を交換するコミュニティ - 【オンライン開催】銀座Rails#24@リンクアンドモチベーション