SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

これだけは押さえておきたい! Rails開発で使えるgemパッケージ/ツール

Railsでユーザー認証機能を実装しよう~定番のgem「devise」活用法(1)

これだけは押さえておきたい! Rails開発で使えるgemパッケージ/ツール 第1回


  • X ポスト
  • このエントリーをはてなブックマークに追加

ユーザー認証機能の定番deviseの概要

 さて、連載第1回は、前半/後半の2回にわたり、Rails開発においてユーザー認証機能を実装するにあたり定番と言えるgemであるdeviseを紹介します。deviseはあまりにも有名で、Railsアプリ開発者であればその名前を知らない人はほとんどいないのではないでしょうか。

 ここからは、deviseに関する基本的な知識について確認します。

基本的な設計思想

 deviseは、RailsのMVCに最適化されたユーザー認証に関する基本的な機能を提供しています。認証ロジックはWardenというgemによって提供されています。また、deviseはRails enginesとして提供されているため、その機能を別のRailsアプリのように取り込むことができます。

Wardenとは

 先ほども触れた通り、WardenとはRackアプリケーションにユーザー認証機能を提供するgemです。Wardenはユーザー認証にセッションを使用します。与えられたユーザーID/パスワードなどを照合して、正しければユーザー情報を参照でき、不正であればエラー時の振る舞いなどを定義することができます。

 詳細についてはWardenのWikiを参照してください。

Rails enginesとは

 Rails enginesは、簡単に言ってしまえばRailsアプリのMVCをgemとしてそのまま別のRailsアプリに取り込むことができる仕組みのことです。deviseはRails enginesの代表的な実装例です。deviseの他にも代表的なgemとしてRailsAdminがあります。RailsAdminはRailsプロジェクトに効率的に管理画面を実装するためのgemです。

 詳細については先ほど紹介したRailsガイドの解説記事を参照してください。

deviseの機能

 deviseには、以下の通り10個の機能がモジュールとして用意されています。

deviseのモジュール
モジュール 機能 デフォルト
Database Authenticatable ユーザー情報格納先にDBを用いる 有効
Registerable ユーザーを登録・編集・削除する 有効
Recoverable パスワードをリセットする 有効
Rememberable cookieにログイン情報を保存する 有効
Trackable ログイン時の情報を保存する 有効
Validatable メールアドレス/パスワードのバリデーション 有効
Confirmable 登録されたemailにメール送信する 無効
Lockable ログインを一定回数失敗したらロックする 無効
Timeoutable 一定期間でタイムアウトさせる 無効
Omniauthable SNS認証用gemのOmniAuthと連携する 無効

 表の通り、デフォルトでは6つのモジュールが有効となっています。実装したい機能に合わせてモジュールを有効化して使用します。モジュールの有効化についてはこの後、実際にdeviseの機能を使う手順の中で紹介します。

次のページ
ユーザー認証機能を実装(1)

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
これだけは押さえておきたい! Rails開発で使えるgemパッケージ/ツール連載記事一覧

もっと読む

この記事の著者

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

WINGSプロジェクト 竹馬 力(チクバ ツトム)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/10813 2018/05/15 17:59

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング