Laravel でマルチ認証をやっています。auth.php redirectifauthnticatedやほかのさまざまな設定をしました。
途中まで調子が良かったのですが、すべて設定し終わるとadmin/loginにアクセスすると/loginに遷移してしまいます。
route/web.php以外にも考えられる原因はありますか??
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答1件
0
ベストアンサー
何を参考にマルチ認証を作ってるか?を誰も書かない。
Laravelで「管理者権限のためのマルチ認証」は使う必要が一切ないのでマルチ認証使ってる人は100%参考にしてる情報を間違ってる。
マルチ認証の前に認可機能を覚えるのが先。
https://readouble.com/laravel/8.x/ja/authorization.html
認証はログインしてるかしてないか。
認可はログインしてるユーザーに対して〇〇ができるかどうか。
「管理画面にアクセスできるかどうか」なんてことは認可でやること。
「他のフレームワークでは認可機能がなかったからマルチ認証で代用していた」だけなのに他のフレームワークの知識だけでLaravel使ってるから壮大に間違えてる。
Laravel公式ではHorizonでもTelescopeでも認可しか使ってない。
https://readouble.com/laravel/8.x/ja/horizon.html#dashboard-authorization
https://readouble.com/laravel/8.x/ja/telescope.html#dashboard-authorization
同じようにメールでもIDでもいいので管理者の認可を作れば
php
1 Gate::define('superAdmin', function ($user) { 2 return in_array($user->email, [ 3 'admin@example.com', 4 ]); 5 });
php
1 Gate::define('superAdmin', function ($user) { 2 return $user->id === 1; 3 });
ルーティングでもコントローラーでもビューでもどこでも管理者かどうかを確認できる。
php
1Route::get('admin', AdminController::class) 2 ->middleware('can:superAdmin');
マルチ認証使ってる人はとてつもなく無駄なことをしているだけ。
投稿2021/03/20 00:02
退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/03/20 03:00
2021/03/20 07:28
2021/03/20 08:10
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。