はじめに
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)が必要です。
$ 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に変更します。
+ 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が表示されるので、ブラウザでアクセスして確認します。
以上で、ユーザー認証の基本的な操作が可能になります。
◆次の記事 【Laravel7でユーザー認証_2】ユーザー認証を日本語化
#参考サイト