WEB/システム/IT技術ブログ

Laravel 6.xの認証機能を利用する

update : 2021/02/28

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');
B!

Comment

Comment Form

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

Monthly Archives