찾다

 >  Q&A  >  본문

Laravel 미들웨어는 사용자가 로그인했는지 인식할 수 없습니다.

저는 Laravel 8을 사용하고 있으며 사용자가 is_staffis_superuser1으로 설정했는지 확인하기 위해 미들웨어를 적용하고 싶습니다. 그러면 관리자 대시보드에 액세스할 수 있고 그렇지 않으면 액세스할 수 없습니다.

그러기 위해 저는 이것을 만들었습니다:

으아악

이제 문제는 redirect('/');을 반환한다는 것입니다. 이는 미들웨어가 사용자가 로그인했음을 인식하지 못하지만 사용자는 이미 로그인되어 있음을 의미합니다.

미들웨어를 다음과 같이 등록했습니다:

으아악

내 관리 경로에 적용했습니다(RouteServiceProvider.php):

으아악

다음은 admin.php 경로입니다:

으아악

여기서 무엇이 잘못됐나요? 이 문제를 어떻게 해결할 수 있나요?

P粉935883292P粉935883292329일 전451

모든 응답(2)나는 대답할 것이다

  • P粉354602955

    P粉3546029552024-03-26 21:14:39

    전체 경로가 표시되지는 않지만 사용량은 기록되지 않을 것입니다.

    다음을 신청할 수 있습니다:

    으아악

    모든 관리 경로에 적용됩니다. 따라서 로그인 양식이 있고 로그인 데이터를 채울 때 사용자는 이 미들웨어가 적용된 일부 엔드포인트에 도달하므로 미들웨어가 /로 다시 리디렉션되기 때문에 사용자가 실제로 로그인한 컨트롤러에 도달하지 않습니다.

    로그인/알림 비밀번호를 제외한 모든 경로는 미들웨어를 적용해야 하며, 그렇지 않으면 로그인이 불가능합니다.

    회신하다
    0
  • P粉797004644

    P粉7970046442024-03-26 20:56:59

    관리 경로에 web미들웨어도 추가해야 할 것 같아요.

    으아아아

    Auth::check() 세션에서 현재 로그인된 사용자를 가져오세요.

    web 미들웨어 그룹은 여러 미들웨어를 적용하는 세션을 활성화합니다

    으아아아

    없으면 web 미들웨어 세션을 사용할 수 없습니다

    회신하다
    0
  • 취소회신하다