RailsのDevise認証機能での実装チェックリストまとめ

Rails 5 + Devise 4.2 の環境でユーザー認証機能を実装する機会があったのですけど、細かい部分で色々と実装すべき項目や必要な知識が沢山あったので、復習を兼ねてブログ過去記事を参考にしつつチェックリスト的にまとめてみました。

— 環境 —
rails 5.0.0.1
devise 4.2.0

なお、Rails4 から Rails5 への変更においては、Devise を使った認証機能の実装では特にはまる箇所はありませんでした。Devise 3 から Devise 4 への変更において、Strong Parameters 設定の API に変更があります。

https://github.com/plataformatec/devise

詳しくは上記 Devise GitHub ページ公式の README を参考。

スポンサーリンク

では、以降 Devise を使った認証機能で実装すべき項目と詳細記事リンクのまとめです。

基本的な認証機能の実装

Devise でEメール入力などサインアップ・フォームを使った認証機能の実装
RailsでDeviseによるユーザー登録・ログイン認証・認可の機能追加

Devise + OmniAuth による OAuth 認証機能の実装
RailsでDeviseとOmniAuthによるTwitter/FacebookのOAuth認証、および通常フォーム認証を併用して実装
RailsでDeviseとOmniAuth を使い、通常フォームのユーザー登録・サインインとOAuth認証を併用する仕様を考えた

Devise のカスタマイズ

Devise 用の日本語翻訳ファイル
Rails で Devise 用の日本語辞書ファイル(devise.ja.yml)

Devise のコントローラーをカスタマイズ
Rails で Devise のコントローラーをカスタマイズ

Devise のビューをカスタマイズ
Rails で Devise のビューを作成してカスタマイズ

Devise での Strong Parameters について
Rails の認証プラグイン Devise での Strong Parameters について

Devise 4 では、Strong Parameters の Parameter Sanitizer API が Devise 3 から変更されています。詳細は上記リンクの記事に書いています。

ユーザーページのカスタマイズ

ユーザー登録・編集フォームに独自フィールドを追加
Rails Deviseでサインアップ用のユーザー登録フォームに、独自の入力フィールドを追加する
RailsのDevise 認証でのユーザー情報更新ページ(users/edit)で、独自に追加した name フィールドを更新する

ユーザーがパスワードなしでアカウント情報を更新できるようにする
Devise でユーザーがパスワードなしでアカウント情報を変更するのを許可
Rails Devise でユーザーがプロフィール情報を更新後に元のページにリダイレクトさせる

ユーザー・モデルのアクション・ビューを追加
Devise で作成した User モデル用のコントローラーの index, show アクションを追加

フレンドリーフォワード、メール送信、管理者ユーザー認証など

ログイン直後のフレンドリーフォワード機能
Rails の Devise でログイン後にログインする直前のページにリダイレクトさせる
Rails + Devise 環境でのフレンドリーフォワーディング機能を修正

Devise によるメール送信
Deviseでユーザー登録完了時にウェルカムメールを送信する
Rails Devise でパスワードリセットなどのメールテンプレート(Mailer ビュー)をカスタマイズ
Deviseで送信されるメールのfrom(送信者メールアドレス)を変更

管理者ユーザーの認証、管理画面の作成
ActiveAdminでRails管理画面を作成

Devise 周りの上記のような機能は、比較的どんなアプリケーションでも実装する必要がある共通の機能かと思いますので、以上チェックリストとしてまとめました。

スポンサーリンク
パーフェクト Ruby on Rails は、最近読んだ Rails 本の中では一番役に立った本です。Chef や Capistrano など Rails と共によく使用される技術にも触れてあります。Ruby on Rails 4 アプリケーションプログラミングは、入門的な内容で Rails の機能全体を網羅されています。
スポンサーリンク
 
Twitterを使っていますのでフォローお願いたします!ブログの更新情報もつぶやいてます^^
(英語学習用)

Leave Your Message!