Laravelミドルウェアはユーザーがログインしていることを認識できません
P粉935883292
P粉935883292 2024-03-25 23:18:57
0
2
418

Laravel 8 を使用しています。ミドルウェアを適用して、ユーザーが is_staff または is_superuser1 に設定しているかどうかを確認して、アクセスできるかどうかを確認したいと考えています。そうしないと、管理者ダッシュボードにアクセスできなくなります。

これを行うために、これを作成しました:

リーリー

問題は、redirect('/'); が返されることです。これは、ミドルウェアがユーザーがログインしていることを認識していないが、ユーザーはすでにログインしていることを意味します。

次のようにミドルウェアを登録しました:

リーリー

そしてそれを管理ルート (RouteServiceProvider.php) に適用します:

リーリー

これは admin.php ルート:

リーリー

それでは、何が問題なのでしょうか?この問題はどうすれば解決できますか?

P粉935883292
P粉935883292

全員に返信(2)
P粉354602955

ルート全体が表示されているわけではありませんが、使用状況が記録されることはないと思います。

あなたが申請できるのは次のとおりです:

リーリー

すべての管理ルート用。したがって、ログインフォームがあり、ログインデータを入力すると、ユーザーはこのミドルウェアも適用されているエンドポイントに到達するため、ミドルウェアが/にリダイレクトして戻るため、ユーザーが実際にログインしているコントローラーには到達しません。

ログイン/リマインダーパスワードを除くすべてのルートにミドルウェアを適用する必要があります。そうしないとログインできなくなります。

いいねを押す +0
P粉797004644

web ミドルウェアも管理ルートに追加する必要があると思います。

リーリー

Auth::check() 現在ログインしているユーザーをセッションから取得してみます。

web ミドルウェア グループがセッションをアクティブ化し、多数のミドルウェアを適用します

リーリー

web がないとミドルウェア セッションは利用できません

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート