rails5:ログイン機能の勉強成果!!

ログインとは

ログインとは、そのサイトを操作しているユーザーを特定できる状態のことを指しています。これがあることによってユーザーごとに違うページを表示できたりするんですね。一番わかりやすいのがtwitterとかのプロフィール画面。同じプロフィールというページでもユーザーによって名前もIDもメアドもプロフィール画像も違いますよね。

これはログイン機能によって可能になっています。ではこのログイン機能を作るにはどんな作業が必要になるのでしょうか。

ログイン機能に必要なこと

ログイン機能には主に5つの工程が必要となるそうです。それらを一つ一つ詳しく見ていきましょう!

ログイン機能

ログイン機能を付けるにはまず、ログインページを作成する必要があります。ページを新たに作成するには「ルーティン、コントロール、ビュー」の3つを作成する必要がある。それから

  • ログインする際のHTMLでパスワードフォームの追加。
  • マイグレーションファイルを作成してパスワードカラムの追加
  • バリデーションをかける(パスワードフォームの空白防止)
  • フォーム値の送信のためルーティングとアクションの追加
  • 送信先の指定
  • ログイン時のユーザー特定
  • 登録されてるユーザーの有無で条件分岐
  • ログイン失敗時のエラーメッセージと初期値の設定
  • sessionを使ったログイン処理

ログアウト機能

  • nilを使ってsessionの値を空にする
  • logoutアクションの作成(ルーティングはsessionの値を変更するのでpostを使う)
  • ログインの有無でヘッダーを変更

ユーザー新規登録時のログイン

  • 新規登録時にパスワードを保存
  • ログイン状態にする

ログインしてるユーザー名の表示

  • ヘッダーに詳細ページへのリンクが付いたユーザー名を表示
  • その処理をbefore_actionを使ってapplicationコントローラで変数定義

ログインの有無でアクセス制限

  • アクセス制限の処理を共通化
  • ログインユーザーがアクセスできないページの作成

ログインユーザーの編集ページ

  • ログインユーザー以外の場合は編集ページへのリンクを非表示
  • ログイン中のユーザーと編集したいユーザーの判定