質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Authentication

Authentication(認証)は正当性を認証する為の工程です。ログイン処理等で使われます。

Q&A

解決済

1回答

1057閲覧

マルチログイン laravel  /loginに遷移する

Jojostyle

総合スコア11

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Authentication

Authentication(認証)は正当性を認証する為の工程です。ログイン処理等で使われます。

0グッド

0クリップ

投稿2021/03/19 17:17

Laravel でマルチ認証をやっています。auth.php redirectifauthnticatedやほかのさまざまな設定をしました。
途中まで調子が良かったのですが、すべて設定し終わるとadmin/loginにアクセスすると/loginに遷移してしまいます。
route/web.php以外にも考えられる原因はありますか??

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hentaiman

2021/03/19 17:30

質問投稿画面に投稿内容の書き方書いてあると思うのでそれに沿った内容で投稿して下さい
guest

回答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

kawax

総合スコア10377

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hentaiman

2021/03/20 03:00

低評価の理由は、 > Laravelで「管理者権限のためのマルチ認証」は使う必要が一切ない 紹介されているページより前のページでまさにadminの例書いてますけど、この回答だと理由が書いて無いため質問者以外の閲覧者を混乱させるだけだからです また経験的には、俗に言うuser用のテーブルとadmin用のテーブルを同一にする設計があり得ません
mikkame

2021/03/20 07:28

> また経験的には、俗に言うuser用のテーブルとadmin用のテーブルを同一にする設計があり得ません これは、管理者は特定IDの人にするっていう実装にするためだと思います。Guardは別れてないと思います 「1人ないし増減しない管理ユーザーを作るためだけにMultiAuthをするのは過剰」だから 「使う必要が一切ない」って理由はちゃんと読み取れます
hentaiman

2021/03/20 08:10

> 「1人ないし増減しない管理ユーザーを作るためだけにMultiAuthをするのは過剰」 回答見直しましたが、どこにその記載が? 仮にそうだとして、質問からも読み取れません > これは、管理者は特定IDの人にするっていう実装にするためだと思います。Guardは別れてないと思います Guardを同一にして別テーブルを使えるという事なら、それは自分の理解不足何で失礼。 そうでないなら何言いたいのか分かりません
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問