HippoBlog
Web開発に関する備忘録や
日々の雑記ブログ
  • #Ruby on Rails
  • 2018年8月15日
ENTRY TITLE

Railsでのユーザー認証ライブラリ『Devise』の実装例

TEXT BY @hippohack@hippohack
TEXT BY @hippohack@hippohack
  • このエントリーをはてなブックマークに追加

Diviseとは オープンソースのユーザー認証ライブラリ。どうやらRailsでのユーザー認証ライブラリとしてはスタンダードらしい。 実際にとても簡単に認証機能を実装することができた。

plataformatec/devise: Flexible authentication solution for Rails with Warden.

手順

Gemのインストール Gemfileに追記して、

bundle install する。 [Gemfile]

gem 'devise'

[bash]

$ bundle install

Deviseのインストール

[bash]

$ rails generate devise:install
  • プロジェクト内にDevise利用のための設定ファイルが作成される。

Deviseを生成する

  • railsコマンドの拡張 rails generate devise でDeviseの機能を生成することができる。
accountはDevice用のモデル。
  • モデル名は任意。
  • 生成後、db:migrate を実行。

  • とりあえずこれでDeviceの機能を使える。

    $ rails g devise account
    $ rails db:migrate

ログイン必須ページを作る

[hoge_controller.rb]

# セッションがなければログインページに遷移する。
before_action :authenticate_account!

# ` current_account ` でログイン中のアカウントを取得できる。
def hoge
    @account = current_account
end

テンプレを編集する デフォルトでスタイルの定義などされていないログインフォームなど吐き出してくれますがカスタマイズは必須だと思うのでテンプレを編集する際には以下を実行する。

  • config/initializers/devise.rbを開いて、config.scoped_views を有効にする。
  • 設定ファイルを修正した後はRailsサーバの再起動。
  • rails g devise:views account を実行してviewファイルを生成する。
  • あとは生成されたファイル弄る。  

参考サイト


最後までお読みいただき、ありがとうございました。

ご意見などありましたら@hippohackへDMをお願いいたします。

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