Laravel 8 を使用しています。ミドルウェアを適用して、ユーザーが is_staff
または is_superuser
を 1 に設定しているかどうかを確認して、アクセスできるかどうかを確認したいと考えています。そうしないと、管理者ダッシュボードにアクセスできなくなります。
これを行うために、これを作成しました:
リーリー問題は、redirect('/');
が返されることです。これは、ミドルウェアがユーザーがログインしていることを認識していないが、ユーザーはすでにログインしていることを意味します。
次のようにミドルウェアを登録しました:
リーリー そしてそれを管理ルート (RouteServiceProvider.php
) に適用します:
これは admin.php
ルート:
それでは、何が問題なのでしょうか?この問題はどうすれば解決できますか?
P粉3546029552024-03-26 21:14:39
ルート全体が表示されているわけではありませんが、使用状況が記録されることはないと思います。
あなたが申請できるのは次のとおりです:
リーリーすべての管理ルート用。したがって、ログインフォームがあり、ログインデータを入力すると、ユーザーはこのミドルウェアも適用されているエンドポイントに到達するため、ミドルウェアが/にリダイレクトして戻るため、ユーザーが実際にログインしているコントローラーには到達しません。
ログイン/リマインダーパスワードを除くすべてのルートにミドルウェアを適用する必要があります。そうしないとログインできなくなります。
P粉7970046442024-03-26 20:56:59
web
ミドルウェアも管理ルートに追加する必要があると思います。
Auth::check()
現在ログインしているユーザーをセッションから取得してみます。
web
ミドルウェア グループがセッションをアクティブ化し、多数のミドルウェアを適用します
web
がないとミドルウェア セッションは利用できません