ここではユーザ登録後にメールアドレスを変更する機能の動作を確認します.Laravel Breeze をインストールすると,メールアドレスの変更機能もいい感じに出来上がっています.
まず,データベースのデータをリセットします.
vagrant@ubuntu2204 laravelAuth $ php artisan migrate:rollback; php artisan migrate; php artisan db:seed ⏎
INFO Rolling back migrations.
2023_11_03_101930_add_login_id_to_users_table ............ 2ms DONE
2019_12_14_000001_create_personal_access_tokens_table .... 7ms DONE
2019_08_19_000000_create_failed_jobs_table ............... 5ms DONE
2014_10_12_100000_create_password_reset_tokens_table ..... 5ms DONE
2014_10_12_000000_create_users_table ..................... 6ms DONE
INFO Running migrations.
2014_10_12_000000_create_users_table .................... 11ms DONE
2014_10_12_100000_create_password_reset_tokens_table ..... 4ms DONE
2019_08_19_000000_create_failed_jobs_table ............... 8ms DONE
2019_12_14_000001_create_personal_access_tokens_table ... 12ms DONE
2023_11_03_101930_add_login_id_to_users_table ........... 14ms DONE
INFO Seeding database.
Database\Seeders\UsersTableSeeder ......................... RUNNING
Database\Seeders\UsersTableSeeder .................. 640.13 ms DONE
vagrant@ubuntu2204 laravelAuth $
次に,user_a のアカウントでログインします.
右上のメニューから「Profile」のリンクを開きます.
Profile のページからは名前とメールアドレスの変更ができます.ここではメールアドレスを「a@sample.com」から受信可能なアドレスに変更します.
変更が完了すると「Your email address is unverified.」と表示されました.この時点で,users テーブルの email_verified_at
が NULL に変更されています.つまり,一旦ログインできない状態になったので,「Click here to re-send the verification email.」のリンクをクリックして,メールを受信します.
受信したメールのリンクをクリックして検証を完了します.
検証が完了すると /dashboard ページにリダイレクトされます.
以上の作業途中で随時データベースの中身を確認したところ次のような結果になりました.
sqlite> select * from users; ⏎ # 変更前 id|name|email|email_verified_at|password|remember_token|created_at|updated_at|login_id|student_id 1|A. Sample|a@sample.com|2023-11-03 00:05:00|$2y$12$1o9lB/bK29D/ctQ31oqR4OWPbuwMfYFREeE1C3mMqoeZisWnlImF6||2023-11-03 00:01:01|2023-11-03 00:01:01|user_a|6300997 2|B. Sample|b@sample.com|2023-11-03 00:06:00|$2y$12$FDhbZGy0w7vLtbODkmhhuu/oOKmGzfxOx/.nuM6LHK6QWlFWfTgCO||2023-11-03 00:02:01|2023-11-03 00:02:01|user_b|6300998 3|C. Sample|c@sample.com|2023-11-03 00:07:00|$2y$12$RjPnebCTS6jUax8s7cE5ve2126fKorZ8XFIRxuo3dMGn7ilP1ahBu||2023-11-03 00:03:01|2023-11-03 00:03:01|user_c|6300999 sqlite> select * from users; ⏎ # email 変更後 id|name|email|email_verified_at|password|remember_token|created_at|updated_at|login_id|student_id 1|A. Sample|xxxxxxx@xx.xxxxxxxxxx.ac.jp||$2y$12$1o9lB/bK29D/ctQ31oqR4OWPbuwMfYFREeE1C3mMqoeZisWnlImF6||2023-11-03 00:01:01|2023-11-04 16:23:45|user_a|6300997 2|B. Sample|b@sample.com|2023-11-03 00:06:00|$2y$12$FDhbZGy0w7vLtbODkmhhuu/oOKmGzfxOx/.nuM6LHK6QWlFWfTgCO||2023-11-03 00:02:01|2023-11-03 00:02:01|user_b|6300998 3|C. Sample|c@sample.com|2023-11-03 00:07:00|$2y$12$RjPnebCTS6jUax8s7cE5ve2126fKorZ8XFIRxuo3dMGn7ilP1ahBu||2023-11-03 00:03:01|2023-11-03 00:03:01|user_c|6300999 sqlite> select * from users; ⏎ # メール検証後 id|name|email|email_verified_at|password|remember_token|created_at|updated_at|login_id|student_id 1|A. Sample|xxxxxxx@xx.xxxxxxxxxx.ac.jp|2023-11-04 16:25:45|$2y$12$1o9lB/bK29D/ctQ31oqR4OWPbuwMfYFREeE1C3mMqoeZisWnlImF6||2023-11-03 00:01:01|2023-11-04 16:25:45|user_a|6300997 2|B. Sample|b@sample.com|2023-11-03 00:06:00|$2y$12$FDhbZGy0w7vLtbODkmhhuu/oOKmGzfxOx/.nuM6LHK6QWlFWfTgCO||2023-11-03 00:02:01|2023-11-03 00:02:01|user_b|6300998 3|C. Sample|c@sample.com|2023-11-03 00:07:00|$2y$12$RjPnebCTS6jUax8s7cE5ve2126fKorZ8XFIRxuo3dMGn7ilP1ahBu||2023-11-03 00:03:01|2023-11-03 00:03:01|user_c|6300999 sqlite>