deviseのインストールと設定方法

Railsでユーザー管理に使われるdeviseのインストールや設定方法を書きました。

スポンサーリンク

概要

Railsでは、ユーザー管理によくdeviseというgemが使われます。

ユーザー管理の機能を自前で実装すると、結構面倒なのですが、deviseを使うとOAuth認証なども簡単に設定できます。

今回は、このdeviseのインストールと設定方法をまとめました。

deviseのインストール

deviseを使うことができるように、Gemfileに下記の内容を追記します。

そのあと、bundle installを実行して、deviseをインストールします。

deviseの設定

deviseは、使う前に設定ファイルをconfigディレクトリ内に配置する必要があります。

配置には、下記のコマンドを実行します。

そして、ユーザー登録ではメールを送信するので、メール送信のための設定を追加する必要があります。

今回は、development環境で使うことを想定しているので、config/environments/development.rbに下記の文を追記します。

このままでは、ユーザー登録時などのエラーメッセージが英語なので、下記の翻訳ファイルをconfig/locales/devise.ja.ymlという名前で保存します。

そして、railsのlocaleを日本語にするために、config/application.rbに下記の内容を追加します。

この後は、ユーザーの情報を格納するモデルを作成します。

ここでは、Userという名前でモデルを作ります。

下記のコマンドでモデルを作成します。

deviseでは、OAuth認証やログイン失敗回数でのアカウントのロックなどの機能がモジュールとして提供されています。

そのモジュールの有効・無効化は、モデルのファイルで変更します。

今回の場合は、app/models/user.rbで変更します。

最初の状態では、下記のようになっています。

devise以降に書かれているモジュールが有効になっています。

各モジュールの説明は、下記に記しておきます。

database_authenticatable

サインイン時に、ユーザーの正当性を検証するためにパスワードを暗号化してDBに登録します。認証方法は、POSTリクエストかHTTP Basic認証が使えます。

使用する場合は、migrationファイルの下記の行のコメントを解除しておきます。

registerable

登録処理を通してユーザーをサインアップします。また、ユーザー自身がアカウントを編集したり削除することを許可します。

recoverable

パスワードのリセット機能を提供し、それをメールによって通知します。

使用する場合は、migrationファイルの下記の行のコメントを解除しておきます。

rememberable

保存されたcookieから、ユーザーを記憶するためのトークンを生成・削除します。

使用する場合は、migrationファイルの下記の行のコメントを解除しておきます。

trackable

サインイン回数や、サインイン時間、IPアドレスを記録します。

使用する場合は、migrationファイルの下記の行のコメントを解除しておきます。

validatable

メールやパスワードのバリデーションを提供します。独自に定義したバリデーションを追加することもできます。

confirmable

メールに記載されているURLをクリックして本登録を完了するという登録方法を提供します。

また、サインイン中にアカウントが認証済みかどうかを検証します。

使用する場合は、migrationファイルの下記の行のコメントを解除しておきます。

locakable

一定回数サインインを失敗するとアカウントをロックします。ロック解除にはメールによる解除か、一定時間経つと解除するといった方法があります。

使用する場合は、migrationファイルの下記の行のコメントを解除しておきます。

timeoutable

一定時間活動していないアカウントのセッションを破棄します。

omniauthable

intridea/omniauthをサポートします。TwitterやFacebookなどの認証を追加したい場合はこれを使用します。

まとめ

結構、設定が面倒ではありますが、その分できることも大きいので、まあこのようなものかなとも思っています。

使いこなして、早くアプリケーションを作れるようになりたいと思います。

スポンサーリンク

シェアする

フォローする