【Rails】deviseのモジュールをサラッと確認
deviseモジュール全部みたときに、全部説明しろって言われてたらできないなぁとふと思ったので、とりあえずサラッと確認してみました。
まず導入
rails newは済んでいます。
gem 'devise'
$ bundle $ rails generate devise:install $ rails generate devise User $ rails db:migrate
するとUserモデルはこんな感じになっています。
class User < ApplicationRecord # Include default devise modules. Others available are: # :confirmable, :lockable, :timeoutable, :trackable and :omniauthable devise :database_authenticatable, :registerable, :recoverable, :rememberable, :validatable end
それぞれ何ができるのか
database_authenticatable
サインイン時にパスワードをハッシュし、ユーザーの信頼性を検証するためのモジュール。
registerable
新しいリソースの登録(ユーザーのサインアップなど)に関連するモジュール
recoverable
パスワードのリセットを処理するためのモジュール
rememberable
保存されたCookieからユーザーを記憶するためのトークンの生成とクリアを管理するためのモジュール
validatable
ユーザーのメールアドレスとパスワードに必要なすべての検証を作成するためのモジュール パスワードの有無、確認、長さもテストする。
confirmable
メールに記載されているURLから本登録を完了する機能を提供するモジュール。 サインイン中にアカウントが認証済みかどうかも検証できる。
lockable
一定回数の試行後にユーザーアクセスをブロックする処理を行うためのモジュール。ロックを解除するために、解除のためのメールと時間経過の2つの方法を設定できる。
timeoutable
ユーザーセッションがすでに期限切れになっているかどうかを確認するモジュール。 設定された時間後にセッションの有効期限が切れると、ユーザーは再度クレデンシャルを要求され、サインインページにリダイレクトされる。
trackable
ユーザーのサインインに関する情報を追跡するモジュール。 以下のカラムを追跡する。
- sign_in_count: サインインの回数
- current_sign_in_at: サインインののタイムスタンプ
- last_sign_in_at: 前回のサインインのタイムスタンプ
- current_sign_in_ip: ユーザーがサインインした際に更新されるリモート ip。
- last_sign_in_ip: 前回サインインした際のリモート ip を保持する
omniauthable
モデルにOmniAuthサポートを追加するモジュール。
所感
lockable, timeoutable, trackable は何ができるのかちゃんと読んでなかったなぁと反省。 次はdevise導入後に基本的にできることをまとめてみたいと思います。