8
7

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.

【Laravel7でユーザー認証_1】基本のき

Last updated at Posted at 2020-06-08

はじめに

Laravel7を使って、ユーザー認証が必要なサイトを構築する方法をまとめます。

#環境
XAMPP環境でLaravelが使えるように設定してあります。

  • Windows10 Pro 64bit
  • PHP 7.3.18
  • Laravel 7.12.0
  • MariaDB 10.1.32

ユーザー認証の設定

Laravelのプロジェクト作成

任意の名称でプロジェクトを作成します。
ここでは、「laravel_auth」という名前でプロジェクトを作成しました。

$ composer create-project --prefer-dist laravel/laravel laravel_auth
$ cd laravel_auth
$ php artisan -v
Laravel Framework 7.12.0

※Laravelのバージョンを指定してインストールしたい場合、laravel/laravelの部分にバージョン情報を追加する。

$ composer create-project --prefer-dist "laravel/laravel=7.*" laravel_auth

認証機能の追加

php artisan ui vue --auth で認証機能を追加します。
Laravel5では、php artisan make:auth で認証機能が追加できましたが、Laravel7はLaravel/uiに組み込まれたため、先にLaravel/uiの追加(composer require laravel/ui)が必要です。

Laravel/uiの追加
$ composer require laravel/ui
Using version ^2.0 for laravel/ui

※Laravel/uiのバージョンを指定したい場合、バージョン情報を最後に追加する。

$ composer require laravel/ui 2.*
認証機能の追加
$ php artisan ui vue --auth
Vue scaffolding installed successfully.
Please run "npm install && npm run dev" to compile your fresh scaffolding.
Authentication scaffolding generated successfully.

Could not open input file: artisan というエラーが出た場合、Laravelのプロジェクトディレクトリ外でコマンドを打っている可能性が高いので、cd コマンドで作成したディレクトリの中に移動します。

パッケージのインストール・ビルド

Laravel/ui に必要なCSSやJavascriptを入れます。

$ npm install
$ npm run dev

データベースの設定

データベースの作成

phpMyAdminで、新規データベースの作成をします。
ここでは、以下内容でデータベースを作成しました。

  • データベース名:laravel_auth_db
  • ユーザ名:laravel_auth_user
  • ユーザパスワード:laravel_auth_password

.envファイルの設定

laravel_multi_auth フォルダの中の .env について、データベース接続に関わる以下の項目を書き換えます。

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel_auth_db
DB_USERNAME=laravel_auth_user
DB_PASSWORD=laravel_auth_password

テーブルの作成

php artisan migrate で認証に必要なテーブルを作成します。

$ php artisan migrate

SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes (SQL: alter table `users` add unique `users_email_unique`(`email`)) というエラーが発生する場合、 app\Providers\AppServiceProvider.php に、以下の内容を追加し、最大長未指定カラムのデフォルト最大長を191に変更します。

app\Providers\AppServiceProvider.php
+   use Illuminate\Support\Facades\Schema;

    public function boot()
    {
+       Schema::defaultStringLength(191);
    }

途中でmigrateが止まってしまった場合、中途半端にテーブルが作られてしまった状態なので、一旦すべてのテーブルを削除して作り直します。

$ php artisan migrate:fresh
Dropped all tables successfully.
Migration table created successfully.

開発サーバの起動

$ php artisan serve
Laravel development server started: http://127.0.0.1:8000

サーバが起動すると、URLが表示されるので、ブラウザでアクセスして確認します。

Laravel.png

以上で、ユーザー認証の基本的な操作が可能になります。

◆次の記事 【Laravel7でユーザー認証_2】ユーザー認証を日本語化

#参考サイト

8
7
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
8
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?