こんにちは、たいし(プロフィールはこちら)です!
「Ruby on Railsでユーザー認証機能を簡単に実装したいけど複雑そう…」、そんな悩みを抱えていませんか?実はDeviseは使い方をマスターすれば、初心者でも簡単にユーザー認証機能を実装できます。なぜならDeviseは豊富な機能と直感的な操作性で、ユーザー認証周りの面倒な処理を自動化してくれるからです。現役エンジニアの私が、Deviseを使ってユーザー認証機能を実装する方法を分かりやすく解説します。
この記事ではDeviseの導入から、使いこなす方法について紹介します。この記事を読むと、Deviseを使って安全で快適なユーザー認証機能を自分のWebアプリケーションに実装できるようになります。
Deviseを使って、ユーザー認証機能を簡単に導入しよう!
\プログラミング未経験者の学習について紹介!/
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を使えばわりと簡単に実装できます。この記事を参考にして、実装にチャレンジしてみてください!
\プログラミング未経験者の学習について紹介!/