저는 Laravel 8을 사용하고 있으며 사용자가 is_staff
或 is_superuser
를 1으로 설정했는지 확인하기 위해 미들웨어를 적용하고 싶습니다. 그러면 관리자 대시보드에 액세스할 수 있고 그렇지 않으면 액세스할 수 없습니다.
그러기 위해 저는 이것을 만들었습니다:
으아악이제 문제는 redirect('/');
을 반환한다는 것입니다. 이는 미들웨어가 사용자가 로그인했음을 인식하지 못하지만 사용자는 이미 로그인되어 있음을 의미합니다.
미들웨어를 다음과 같이 등록했습니다:
으아악 내 관리 경로에 적용했습니다(RouteServiceProvider.php
):
다음은 admin.php
경로입니다:
여기서 무엇이 잘못됐나요? 이 문제를 어떻게 해결할 수 있나요?
전체 경로가 표시되지는 않지만 사용량은 기록되지 않을 것입니다.
다음을 신청할 수 있습니다:
으아악모든 관리 경로에 적용됩니다. 따라서 로그인 양식이 있고 로그인 데이터를 채울 때 사용자는 이 미들웨어가 적용된 일부 엔드포인트에 도달하므로 미들웨어가 /로 다시 리디렉션되기 때문에 사용자가 실제로 로그인한 컨트롤러에 도달하지 않습니다.
로그인/알림 비밀번호를 제외한 모든 경로는 미들웨어를 적용해야 하며, 그렇지 않으면 로그인이 불가능합니다.
관리 경로에
으아아아web
미들웨어도 추가해야 할 것 같아요.Auth::check()
세션에서 현재 로그인된 사용자를 가져오세요.
으아아아web
미들웨어 그룹은 여러 미들웨어를 적용하는 세션을 활성화합니다없으면
web
미들웨어 세션을 사용할 수 없습니다