Laravel 6.xの認証機能は、これまでの5.xとは少し異なるようです。
5.xでは、make:authコマンドを実行後、メールアドレス認証のためコードを調整したり、ルートを調整したりという作業が必要でした。
6.xでは、基本的にはデフォルトで認証機能が組み込まれており、その導入手順が異なります。
認証機能を準備
まず、以下のコマンドでLaravelのベースで必要となるテーブルを生成します。そこに認証に必要なテーブルもデフォルトで含まれているので、実施済みの場合は、こちらはスキップしても問題ありません。
> php artisan migrate
次に、以下のコマンドを実行すると、必要なルート定義と、ログイン画面、新規登録画面、パスワード再設定画面など、認証に必要なビューソースを一通り展開してくれます。
> composer require laravel/ui "^1.0" --dev > php artisan ui vue --auth
準備は以上です。
ユーザを追加
本来、運用上「ユーザ追加画面」などを用意するケースがあると思いますが、とりあえずサンプルユーザを追加して開発、テストしてみたいという事も多いはずです。
以下のようにtinkerコマンドを使用して、ユーザを追加することができます。
> php artisan tinker >>> App\User::create(['name' => 'sample', 'email' => 'sample@sample.com', 'password' => bcrypt('sample')]);
以下のように出力されれば、ユーザ追加成功です。
=> App\User {#4104 name: "sample", email: "sample@sample.com", #password: "$2y$10$o9imRTFR1i8Uisnaf9PVfuvbnvrTLtd7NlyLoz9Nl0.ol4WsKKwPm", updated_at: "2021-05-28 11:46:38", created_at: "2021-05-28 11:46:38", id: 1, }
ルートに認証制限を設定する
任意のページについて、未認証ユーザにアクセスさせないためには、ルート設定に「middleware(‘auth’)」を追加します。
例えば以下にようにすると未認証ユーザはページ「/profile」にアクセスできません。
Route::get('profile', 'ProfileController@index')->middleware('auth');
コメントする