Tempo Di Valse

[PHP/Laravel] auth:api 적용된 Middleware 가 작동을 하지 않을 때 본문

개발/Web

[PHP/Laravel] auth:api 적용된 Middleware 가 작동을 하지 않을 때

TempoDiValse 2022. 12. 6. 13:45

Laravel Passport 를 적용 하는 중에 문서를 잘 따라 하며 개발을 하고 있다가 마지막으로 API 통신을 위해 Bearer 헤더를 적용하여 테스트 하려는데,

 

다음과 같이 Illegal offset type 이라는 에러가 발생이 되었다.

 

Object 를 사용하는 곳도 없고..

config/auth.php 관련되어 변경한 것도 없고..

Middleware 도 기본 Authenticate 클래스를 사용하고 있어서 어디가 잘못 되어있는 지 알 수가 없었는데,

 

Authenticate 클래스에서 다음의 이상한 점을 찾았다.

handle 을 오버라이드 한 적이 없는 것 같은데;; 갑자기 튀어나와서 당황을 했네. 게다가 $guards 가 varargs 형태를 가지고 있는데 parent 에 넘겨줄 때에는 그냥 파라미터만 넘기고 있었다. 

 

그래서 해결책은,

handle 클래스 안에 할 일이 없으니 지웠다.

 

그렇지 않으면,

parent 에 넘기는 $guards 의 파라미터도 앞에 ...(Splat Operator) 을 붙여 통과 시키는 방법이 있다.

 

노란색 하이라이트 아니었으면 못봤을 뻔했다.

반응형
Comments