icon
icon

Ruby on Railsで扱うログインの実装方法【初心者向け】

Ruby on Railsで実装するログインの方法について解説しています。Webアプリを作る上でログイン、ログアウトの機能はよく出てきます。Gemを使わずに説明しているので今後も自力で実装できるようになるでしょう。

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名  調査手法:インターネット調査

RubyのフレームワークのRuby on Railsでログインを実装しようとするとdeviseというgemを使うのが一番手っ取り早いと言われています。

しかし、初心者の方がgemを使ってしまうと、railsの理解が追いつかないまま、とりあえず動くアプリができたという事態に陥ってしまう可能性があります。そこで今回はgemを使用しないログインについて解説していきたいと思います。

deviseを使って行う方法も併せて紹介しておきます。

 

なお本記事は、TechAcademyのWebアプリケーションオンラインブートキャンプの内容をもとに紹介しています。

 

田島悠介

今回はログイン画面を表示させる方法について解説しよう。

大石ゆかり

田島メンター!!ログインを実装するにはまずどうすればいいですか〜?

田島悠介

ひとつはdeviseというgemを使う方法があるけれど、これはまた別のところで紹介しよう。ここではgemを使わない場合の手順を説明するよ。

大石ゆかり

分かりました!

 

ログインを作成してみる

それでは実際にログインを作成していきましょう。今回はUserというモデルでログインを実装したいと思います。

User
:name
:email
:password

を要素とするとします。まずはじめにnewアクションを持ったSessionsコントローラーを作成します。

$rails g controller Sessions new

次にroutesファイルを以下のように編集してください。

get    'login'   => 'sessions#new'
post   'login'   => 'sessions#create'
次にコントローラーを編集します。
def new
end
def create
if//password,emailなどが正しいかの判別式を記入
session[:id] = user.id
end
end

このようにuserのidが代入されたsessionをcreateすることによってログインが実装されます。

 

大石ゆかり

このsessionというのは何ですか?

田島悠介

これはセッションにデータを保存するときに使うんだ。セッションはユーザーの行動に関する情報だね。

大石ゆかり

ということは、ログアウトするときはこの情報は削除するということでしょうか?

田島悠介

そうだね。次はログアウトの実装について解説しよう。

 

ログアウトを作成してみる

先ほど「userのidが代入されたsessionをcreateすることによってログインが実装」と説明しました。

この言葉の通りsessionというオブジェクト一つでログインを管理できていることがわかります。つまりログアウトを実装するためには、このsessionを削除すればいいということになります。コードにすると以下のようになります。

session.delete(:id)

このようにたった1行でログアウトを実装することができます。

 

今回はSessionを利用したログインログアウトについて解説していきました。Sessionを使えるようになればログイン実装はとても簡単になります。ただこのままのコードではセキュリティがとても甘い状態なので、そういった面を調べて扱えるようになることも重要です。

 

田島悠介

最後にログアウトの方法を解説したよ。

大石ゆかり

セッションが存在しているときが、ユーザーがログインしているときということでしょうか?

田島悠介

そういう流れになるね。セッションの情報をサーバで一時的に保持しておくことがログイン・ログアウトと関係してくるんだ。

大石ゆかり

なるほど、ありがとうございます!

 

[お知らせ]TechAcademyでは初心者でも8週間でエンジニアになれるRuby on Railsオンラインブートキャンプを開催しています。RubyでWebアプリを開発したい方はご参加ください。

初心者・未経験でもできる。まずはテックアカデミーに相談しよう

プログラミングを独学で学習していて、このように感じた経験はないでしょうか?

  • ・調べてもほしい情報が見つからない
  • ・独学のスキルが実際の業務で通用するのか不安
  • ・目標への学習プランがわからず、迷子になりそう

テックアカデミーでは、このような 学習に不安を抱えている方へ、マンツーマンで相談できる機会を無料で提供 しています。
30分間、オンラインでどんなことでも質問し放題です。

「受けてよかった」と感じていただけるよう カウンセラーやエンジニア・デザイナー があなたの相談に真摯に向き合います。

「自分に合っているか診断してほしい」
「漠然としているが話を聞いてみたい」

こんなささいな悩みでも大丈夫です。

無理な勧誘は一切ありません ので、まずはお気軽にご参加ください。
※体験用のカリキュラムも無料で配布いたします。(1週間限定)

今なら参加者限定の割引特典付き! 無料相談を予約する