1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Docker Laravel6のアプリにユーザ認証機能を付与する

Posted at

目的

  • 環境構築とLaravelアプリ作成後にユーザ認証の機能を付与する方法をまとめる。

実施環境

  • ハードウェア環境
項目 情報
OS macOS Catalina(10.15.5)
ハードウェア MacBook Pro (13-inch, 2020, Four Thunderbolt 3 ports)
プロセッサ 2 GHz クアッドコアIntel Core i5
メモリ 32 GB 3733 MHz LPDDR4
グラフィックス Intel Iris Plus Graphics 1536 MB

前提条件

前提情報

  • 特になし

読後感

  • Laravelアプリにauthを用いたユーザ認証機能を付与することができる。

概要

  1. Dockerのphpコンテナに入る
  2. DBの作成と設定
  3. ライブラリのインストール
  4. Authファイルの取得
  5. 確認

詳細

  1. Dockerのphpコンテナに入る

    1. 下記コマンドを実行してDockerの起動しているコンテナの一覧を表示する。

      $ docker ps
      
    2. PHPのコンテナを探し下記コマンドを実行する。

      $ docker exec -it phpコンテナの名前 bash
      
    3. Dockerコンテナ内で下記コマンドを実行してnginxのドキュメントルートに移動する。

      $ cd /usr/share/nginx/html/app
      
  2. DBの設定

    1. Dockerコンテナ内のappディレクトリで下記コマンドを実行して.envファイルを開く。

      $ vi .env
      
    2. DBの記載を下記の様に修正・追記を行う。

      /usr/share/nginx/html/app/.env
      DB_CONNECTION=mysql
      DB_HOST=mariadb
      DB_PORT=3306
      DB_DATABASE=laravel
      DB_USERNAME=laravel
      DB_PASSWORD=larapass
      
    3. 記載後の.envファイルの内容を下記に記載する。

      /usr/share/nginx/html/app/.env
      APP_NAME=Laravel
      APP_ENV=local
      APP_KEY=base64:3aQ51W/eAA0ICIpKCYhAygUc1SCWOcKBL9Sijrn8iOQ=
      APP_DEBUG=true
      APP_URL=http://localhost
      
      LOG_CHANNEL=stack
      
      DB_CONNECTION=mysql
      DB_HOST=mariadb
      DB_PORT=3306
      DB_DATABASE=laravel
      DB_USERNAME=laravel
      DB_PASSWORD=larapass
      
      BROADCAST_DRIVER=log
      CACHE_DRIVER=file
      QUEUE_CONNECTION=sync
      SESSION_DRIVER=file
      SESSION_LIFETIME=120
      
      REDIS_HOST=127.0.0.1
      REDIS_PASSWORD=null
      REDIS_PORT=6379
      
      MAIL_DRIVER=smtp
      MAIL_HOST=smtp.mailtrap.io
      MAIL_PORT=2525
      MAIL_USERNAME=null
      MAIL_PASSWORD=null
      MAIL_ENCRYPTION=null
      MAIL_FROM_ADDRESS=null
      MAIL_FROM_NAME="${APP_NAME}"
      
      AWS_ACCESS_KEY_ID=
      AWS_SECRET_ACCESS_KEY=
      AWS_DEFAULT_REGION=us-east-1
      AWS_BUCKET=
      
      PUSHER_APP_ID=
      PUSHER_APP_KEY=
      PUSHER_APP_SECRET=
      PUSHER_APP_CLUSTER=mt1
      
      MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
      MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
      
  3. ライブラリのインストール

    1. Dockerコンテナ内のappディレクトリで下記コマンドを実行してライブラリを取得する。(ライブラリのバージョン指定1.*を行わず実行するとエラーになる。バージョン指定をせずエラーになった話はこちら→Laravel 6 $ composer require laravel/uiを実行するとエラーが発生する)

      $ composer require laravel/ui 1.*
      
  4. Authファイルの取得

    1. Dockerコンテナ内のappディレクトリで下記コマンドを実行してAuthに必要なファイルを取得する。

      $ php artisan ui bootstrap --auth
      
    2. Dockerコンテナ内で下記コマンド実行してnvmをインストールする。

      $ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
      
    3. Dockerコンテナ内で下記コマンドを実行してnode.jsとyarnをインストールする。

      $ . ~/.nvm/nvm.sh && nvm install node && npm i -g yarn
      
    4. Dockerコンテナ内で下記コマンドを実行して必要なCSSファイルをインストールする。

      $ npm install && npm run dev
      
  5. 確認

    1. 下記にアクセスし、Laravelのホーム画面が出力されることを確認する。

    2. 「REGISTER」をクリックする。

      Laravel.png

    3. 下記の画面が出力されることを確認する。

      Laravel.png

    4. Dockerコンテナ内の/usr/share/nginx/html/appディレクトリに移動し下記コマンドを実行する。

      $ php artisan migrate
      
    5. 各認証情報を入力し「Registar」をクリックする。

      Laravel.png

    6. 下記の様に初期登録とログインすることができればユーザ認証機能の付与は完了である。

      Laravel.png

参考文献

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?