Laravelで認証機能周りをカスタマイズすることがあったので、認証機能の動かし方をまとめてみました。
Laravel6で認証機能を追加して、ユーザー登録とログインができるところまで確認しています😃
使ってみる
認証機能の追加
laravel6系から認証機能を使うための、make:authコマンドがなくなっているので
下記コマンドで認証機能を追加します。
composer require laravel/ui "^1.0" --dev
php artisan ui vue --auth
追加した後に下記コマンドで、app.jsをコンパイルします。
npm install && npm run dev
追加されたファイルの確認
ui vue –authなのでvue系のファイルができるかと思いきや
おなじみのbladeファイルがresources/views/auth配下にできています。
resources/views/home.blade.php
resources/views/auth/login.blade.php
resources/views/auth/register.blade.php
resources/views/auth/verify.blade.php
resources/views/auth/passwords/confirm.blade.php
resources/views/auth/passwords/email.blade.php
resources/views/auth/passwords/reset.blade.php
resources/views/layouts/app.blade.php
あとweb.phpに下記が追加され
Auth::routes();
Route::get('/home', 'HomeController@index')->name('home');
/homeにアクセスすると、認証ページのトップになり、Auth::routes()で下記ルーティングが追加されています。
URI | Action |
---|---|
home | HomeController@index |
login | Auth\LoginController@showLoginForm |
login | Auth\LoginController@login |
logout | Auth\LoginController@logout |
password/email | Auth\ForgotPasswordController@sendResetLinkEmail |
password/reset | Auth\ForgotPasswordController@showLinkRequestForm |
password/reset | Auth\ResetPasswordController@reset |
password/reset/{token} | Auth\ResetPasswordController@showResetForm |
register | Auth\RegisterController@showRegistrationForm |
register | Auth\RegisterController@register |
sqliteでdatabaseを用意して、migrationする
とりあえず上記までで、php artisan serveして、/homeにアクセスすると画面が表示されますが
ユーザー登録やログイン機能が使えないため、ユーザを登録できるテーブルをmigrationして作成します。
サクッと使いたいので、sqliteで使ってみます。
.envを編集して、mysqlがデフォルトで使うようになっているので、sqliteに切り替えます。
#DB_CONNECTION=mysql
#DB_HOST=127.0.0.1
#DB_PORT=3306
#DB_DATABASE=laravel
#DB_USERNAME=root
#DB_PASSWORD=
DB_CONNECTION=sqlite
touchコマンドなどで、database/ディレクトリ配下に、database.sqliteファイルを用意します。
touch database/database.sqlite
php artisan migrateコマンドを実行して、マイグレーションします。
Migration table created successfully.
Migrating: 2014_10_12_000000_create_users_table
Migrated: 2014_10_12_000000_create_users_table (0 seconds)
Migrating: 2014_10_12_100000_create_password_resets_table
Migrated: 2014_10_12_100000_create_password_resets_table (0 seconds)
Migrating: 2019_08_19_000000_create_failed_jobs_table
Migrated: 2019_08_19_000000_create_failed_jobs_table (0 seconds)
sqliteファイルにテーブルが作成されます。
ここまでで、ユーザー登録とログイン機能が使えるようになっています。
動作確認
php artisan serveでlaravelを動作させて、
127.0.0.1:8000/register にアクセスしてユーザー登録をしてみると…
登録されて問題なく、ログインされました。
sqliteでも認証機能のところがサクッと使えて確認できていいですね😃
テーブルの中身も確認してみる
sqliteコマンドを使って、実際にデータができているか確認します。
sqlite3 database/database.sqlite
.tablesでテーブル一覧が確認できます。
テーブルができているのでOK。
sqlite> .tables
failed_jobs migrations password_resets users
select文でユーザーが追加されているか確認します。
sqlite> select * from users;
1|山田太郎|taro@test.hoge.com||$2y$10$FkAaOfiJHM48W4mIO4P1GuodLCSUFaA23yfZyyNcRB9JCCHghNGC.||2020-06-17 15:48:29|2020-06-17 15:48:29
OK👍🏻
コメント