PR

Deviseとは?ユーザー認証機能の実装方法をRuby on Rails初心者に徹底解説

Deviseを使ったユーザー認証機能実装ヘッダーエンジニアコラム
記事内に広告が含まれています。
スポンサーリンク

こんにちは、たいし(プロフィールはこちら)です!

「Ruby on Railsでユーザー認証機能を簡単に実装したいけど複雑そう…」、そんな悩みを抱えていませんか?実はDeviseは使い方をマスターすれば、初心者でも簡単にユーザー認証機能を実装できます。なぜならDeviseは豊富な機能と直感的な操作性で、ユーザー認証周りの面倒な処理を自動化してくれるからです。現役エンジニアの私が、Deviseを使ってユーザー認証機能を実装する方法を分かりやすく解説します。

この記事ではDeviseの導入から、使いこなす方法について紹介します。この記事を読むと、Deviseを使って安全で快適なユーザー認証機能を自分のWebアプリケーションに実装できるようになります。

Deviseを使って、ユーザー認証機能を簡単に導入しよう!

\プログラミング未経験者の学習について紹介!/

プログラミング初心者でも安心!エンジニアへの第一歩を踏み出すための3STEP学習法
プログラミングに興味のある未経験の方は必見!この記事では、プログラミング未経験からエンジニアとなる方法を紹介しています。実は方法を間違わなければ、誰でもエンジニアとなることは可能です。この記事を読むことで、プログラミング学習の準備からエンジニアになるための学習3STEPがわかります。
スポンサーリンク

Deviseとは:Ruby on Railsでユーザー認証を簡単に実装する

Deviseは、Ruby on Railsでユーザー認証機能を簡単に実装するためのgemです。ユーザー登録、ログイン、ログアウト、パスワード再設定など、ユーザー認証に必要な機能を全て提供してくれます。

Deviseを使うメリット

Deviseを使うことで、以下のようなメリットがあります。

  • 開発時間の短縮: ユーザー認証機能をイチから実装する必要がなくなり、開発時間を大幅に短縮できます。
  • セキュリティの向上: Deviseは安全なユーザー認証機能を提供してくれるため、セキュリティを向上させることができます。
  • 使いやすさ: Deviseは直感的な操作性で、初心者でも簡単に使いこなすことができます。
  • 豊富な機能: ユーザー登録、ログイン、ログアウト、パスワード再設定など、ユーザー認証に必要な機能を全て提供してくれます。
  • カスタマイズ性: Deviseは必要に応じてカスタマイズすることができ、柔軟な開発が可能です。
スポンサーリンク

deviseをインストールする

まず、rails newコマンドで作成したアプリケーションの直下にあるGemfileを開きます。開いたGemfileの最後の行に、以下の1行を追加してください。

Gemfile
gem ‘devise’

追加したdeviseを、アプリケーションに読み込ませます。ターミナルに、下記コマンドを入力してください。

$ bundle install

さらに、deviseの初期設定を行います。ターミナルに、下記コマンドを入力してください。

$ rails g devise:install

これで、deviseを使う準備は完了です。

スポンサーリンク

ユーザテーブルを作成する

deviseを利用すると、つくるのが面倒なユーザテーブルを自動的に作成してくれます。それでは実際にユーザテーブルを作成して、ユーザ情報を保存していきます。

まずモデルを作成します。モデル名は「User」とします。通常のモデル作成では、rails g model モデル名で作成します。deviseを使うと、記述が変わります。rails g devise モデル名と記述します。これは、devise独自のルールです。

ターミナルに、下記コマンドを入力してください。

$ rails g devise User

これで「User」という名のモデルと、usersテーブル用のマイグレーションファイルが作成されました。マイグレーションファイルを見てみると、emailとパスワード用のカラムは自動で生成されるようになっているので、
他に追加したいものがあればここでマイグレーションファイルに追記してください。

次にマイグレーションファイルを、データベースへマイグレーションを行います。ターミナルに、下記コマンドを入力してください。

$ rails db:migrate

これで、Usersテーブルの作成は完了です。サーバーを起動して確認してみましょう。ターミナルに、下記コマンドを入力してください。

$ rails s

ブラウザから以下のアドレスにアクセスして、ログイン画面・ユーザ登録画面を確認してみましょう。

スポンサーリンク

ログイン画面・ユーザ登録画面をカスタマイズする

前述の段階で、ログイン機能は実装できています。ただし現在のログイン画面は、deviseによって提供された初期設定のViewです。deviseでカスタマイズできるViewを作成することで、ログイン画面をカスタマイズできます。

ターミナルに、下記コマンドを入力してください。

$ rails g devise:views

rails g devise:viewsコマンドによって、deviseのさまざまな機能と関連付けられているViewが作成されます。

ログイン機能のViewは、app/views/devise/sessionsフォルダ内にあるnew.html.erbファイルです。またユーザ登録のViewは、app/views/devise/registrationsフォルダ内のnew.html.erbファイルです。それぞれ、好きな見た目にカスタマイズしてください。

スポンサーリンク

ログイン・ログアウト時のリダイレクト先の変更

app/controllers/application_controller.rbファイルに、以下を追加します。

app/controllers/application_controller.rb
def after_sign_in_path_for(resource)
  users_path
end
def after_sign_out_path_for(resource)
  root_path
end

上はログイン後、下はログアウト後のリダイレクト先を指定できます。users_pathとroot_pathの箇所を、任意のリダイレクト先に変更してください。

スポンサーリンク

まとめ

今回はdeviseを使って、ユーザー認証機能の実装方法について紹介しました。。ログイン機能は良く使われる機能ですが、このdeviseを使えばわりと簡単に実装できます。この記事を参考にして、実装にチャレンジしてみてください!

\プログラミング未経験者の学習について紹介!/

プログラミング初心者でも安心!エンジニアへの第一歩を踏み出すための3STEP学習法
プログラミングに興味のある未経験の方は必見!この記事では、プログラミング未経験からエンジニアとなる方法を紹介しています。実は方法を間違わなければ、誰でもエンジニアとなることは可能です。この記事を読むことで、プログラミング学習の準備からエンジニアになるための学習3STEPがわかります。
スポンサーリンク
エンジニアコラム
Taishiをフォローする
スポンサーリンク
I’LL BE:未経験からのエンジニア転職