0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

RailsでのGemを使用したログイン機能の実装方法

Last updated at Posted at 2023-08-10

この記事では、Ruby on Railsで人気のあるGem、deviseを用いてログイン機能を実装する方法を備忘録としてまとめていきます。

1. 前提条件

  • Ruby on Railsがインストールされていること
  • 新規のRailsアプリケーションが作成されていること

2. Devise Gemのインストール

まずは、Gemfileに以下の行を追加します。

gem 'devise'

その後、ターミナルで以下のコマンドを実行して、gemをインストールします。

$ bundle install

3. Deviseのセットアップ

インストールしたら、Deviseの初期設定を行います。

$ rails generate devise:install

これにより、いくつかの初期設定ファイルや、インストール時の指示が表示されます。これに従って設定を進めていきましょう。

4. Userモデルの作成

次に、ユーザーモデルを作成します。

$ rails generate devise User

このコマンドにより、Userモデルや関連ファイル、マイグレーションファイルなどが生成されます。

5. マイグレーションの実行

$ rails db:migrate

このコマンドで、usersテーブルがデータベースに作成されます。

6. ログイン、ログアウト、サインアップのViewを作成

Deviseはデフォルトでviewを提供していますが、カスタマイズしたい場合は以下のコマンドでアプリケーションにコピーしてカスタマイズすることができます。

$ rails generate devise:views

7. ルーティングの設定

Deviseのインストールにより、config/routes.rbには以下のルートが追加されます。

devise_for :users

これにより、ログイン、ログアウト、サインアップ、パスワードの再設定などのルートが自動で設定されます。

8. 認証の追加

任意のコントローラに認証を追加するには、そのコントローラ内で以下のように記述します。

before_action :authenticate_user!

これにより、そのコントローラのアクションを実行する前にユーザーのログインを要求するようになります。

9. カラムの追加

デフォルトで生成されるUserモデルには、emailとpasswordのカラムしかありませんが、例えば名前やユーザ名を追加したい場合は以下のようにします。

  1. マイグレーションを生成:
$ rails generate migration AddNameToUsers name:string
  1. マイグレーションを実行:
$ rails db:migrate

10. 認証以外の機能: パスワードのリセット、確認メールの送信

deviseは、認証以外にも多くのユーザー関連の機能を提供しています。これには、パスワードのリセット、アカウントの確認メールの送信、アカウントのロックなどがあります。

これらの機能を有効にするには、config/initializers/devise.rbの設定を変更するだけで十分です。ただし、メールの送信機能を使用する場合は、メールの設定が必要になります。

11. 認証のカスタマイズ: バリデーション、コールバック

deviseで生成されるモデルは、通常のActiveRecordモデルと同様にカスタマイズすることができます。バリデーションを追加したり、コールバックを使用して特定のアクションをトリガーすることができます。

class User < ApplicationRecord
  devise :database_authenticatable, :registerable, :recoverable, :rememberable, :validatable

  validates :name, presence: true, length: { maximum: 50 }
end

12. Viewのカスタマイズ: スタイリング

deviseが提供するViewは、BootstrapやTailwind CSSなどのフレームワークを使用してスタイリングすることができます。これにより、アプリケーションの全体的なデザインに合わせて、ログインやサインアップのページをカスタマイズすることができます。

まとめ

deviseは、Railsアプリケーションにログイン機能を追加するための非常に強力なツールですが、その機能は上記に示した基本的なものだけではありません。公式のドキュメントを読みながら、アプリケーションのニーズに合わせてカスタマイズを進めてみてください。

参考文献

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?