不惑にしてまだ何者でもない者のブログ

Arduino関連、Raspberry Pi関連、プログラミング学習

paizaラーニング『Laravel入門編5: Laravelでユーザー管理しよう (全9回)』を受講してみた

2021-02-24 23:01:59 | paiza

『Laravel入門編5: Laravelでユーザー管理しよう (全9回)』


これでLaravel入門編も最後のレッスンだな
内容も結構難しかったけど、
処理が重いせいか何度もPCがフリーズしたり、
ジャッジに時間がかかり過ぎてタイムアウトしたり、
となんか色々大変だったな😩 

メモ

#01:ユーザー管理機能を理解しよう

#02:ユーザー管理機能を追加しよう

  • 新規のアプリケーションディレクトリを追加する
    $ laravel new test_auth
  • ユーザー管理用のファイル
    • app/Models/User.php
    • database/migrations/20xx_xx_xx_000000_create_users_table.php
    • database/migrations/20xx_xx_xx_000000_create_password_resets_table.php
  • ユーザー管理機能を自動生成
    $ php artisan make:auth
    • これで、ユーザー管理用のルートとビューを追加する。
※ ってあるけど、Laravel6.x以降 php artisann make:auth コマンドは無くなったらしい(Web上の環境は、Laravel5系が使われている)。
そこで、以下のサイトを参考に、必要なライブラリをインストールして、異なるコマンドを実行する必要がある。


#laravel8の場合
composer require laravel/ui
php artisan ui vue --auth
  • 登録されているルートを確認するには、次のコマンドを実行する。
    php artisan route:list

#03:ユーザー管理用のテーブルを用意しよう

  • ユーザー管理用データベースを作成する:myauth
  • データベース設定 :.envファイルの編集
  • マイグレート
    $ php artisan migrate
※ ここでの作業による変更は、gitに認識されなかった。

#04:ログインフォームの動作確認をしよう

  • ユーザー登録やログイン画面を実際に操作して、どのような機能ができたのか把握する。

#05:ログイン機能を追加しよう

Lunchmapアプリにユーザー管理機能を組み込んでいく。
まずは、ユーザー管理用のルートとビューを追加して、ユーザー登録とログイン機能を有効にする。
  • ユーザー管理用のルートとビューを追加
    • Laravel5系の場合
      $ php artisan make:auth
    • Laravel6以降の場合
      composer require laravel/ui
      php artisan ui vue --auth
  • 共通テンプレートに、ログイン用のコードを追加する
    • resources/views/layout.blade.phpのheadタグの編集
    • resources/views/auth/app.blade.phpのナビゲーションバーにあるログイン用リンクのボタンのコードを、resources/views/layout.blade.phpのナビゲーションバー部分にコピーする。
  • csrf_token()とは?
    これはCross Site Request Forgery(リクエスト強要)と呼ばれる攻撃手法に対策するもの。CSRFはWebアプリケーションへのリクエストを記述した命令を不本意に実行させて、その人の権限でリクエストを実行させるという攻撃のこと。
※ 自分の環境の場合、登録したユーザーでログインはできるが、ログアウトができない。そもそもログアウトボタンが表示されない。

#06:アクセス制御を追加しよう

ログインしている時だけ、お店情報を投稿・更新・削除できるようにする。
  • ログインしていない時、実行しないメソッドを指定する
    app/Http/Controllers/ShopController.phpの編集
    • public function __construct()
  • お店一覧のリンクを制御
    resources/views/index.blade.php

#07:お店情報にユーザー情報を追加しよう

  • カラムを追加するためのマイグレーションファイルを生成
    $ php artisan make:migration add_user_id_to_shops_table --table=shops
  • マイグレーションファイルに、user_idカラムを追加
    database/migrations/20xx_xx_xx_xxxxxx_add_user_id_to_shops_table
    • upメソッド
      $table->integer('user_id');
  • マイグレート
    $ php artisan migrate
  • usersテーブルにuser_idを登録
    • idが1のレコードに、user_id=1
    • idが2以上のレコードに、user_id=2
      (SQL)
      UPDATE shops
       SET user_id=2
          WHERE id>=2;
  • Shopモデルに、Userへのリレーションを追加
    app/Models/Shop.phpの編集
    • public function user()の作成
  • お店一覧に、ユーザー名を追加する
    resources/views/index.blade.phpの編集

#08:自分で投稿したお店情報のみ、更新・削除できるようにしよう

  • 新規投稿時に、user_idカラムを保存する
    app/Http/Controllers/ShopController.phpの編集
    • public function store(Request $request)の編集
  • showメソッドで、ログインユーザー情報を取得してビューに渡す
    app/Http/Controllers/ShopController.phpの編集
    • public function show($id)の編集
  • ログインユーザーの記事だったら、リンクを表示
    resources/views/show.blade.phpの編集
  • アクセス制御について

#09:セッションとパスワードを理解しよう

  • セッションとは
    ログインしてから、ログアウトするまでの一連のアクセスを「セッション」と呼ぶ。
  • セッションを確認する手順
    • Google Chromeの場合
      1.「設定」メニューを呼び出す
      2.「詳細設定」-「コンテンツの設定」-「Coookies」-「すべてのクッキーとサイトデータ」
      3.Webアプリケーションのドメイン名を検索する
  • パスワードの暗号化について
    Laravelでは、パスワードを「ハッシュ」という暗号に変換して保存している。 

認定証

このレッスンは、チャプター8終了時点で認定証がもらえた。


どうやらこのレッスン終了で、レッスン完了数がちょうど100になったみたい。
残りは51レッスンだけど、契約満了の3月末までにすべて終われるだろうか?

学習ステータス





最新の画像もっと見る

コメントを投稿